小编jny*_*len的帖子

Git:仅列出"未跟踪"文件(也是自定义命令)

有没有办法使用命令git ls-files,只显示未跟踪的文件?

我问的原因是因为我使用以下命令来处理所有已删除的文件:

git ls-files -d | xargs git rm
Run Code Online (Sandbox Code Playgroud)

对于未跟踪的文件,我想要类似的东西:

git some-command --some-options | xargs git add
Run Code Online (Sandbox Code Playgroud)

我能够找到-o选项git ls-files,但这不是我想要的,因为它也显示了被忽略的文件.我还能够提出以下长而丑陋的命令:

git status --porcelain | grep '^??' | cut -c4- | xargs git add
Run Code Online (Sandbox Code Playgroud)

似乎我必须在这里使用更好的命令.如果没有,我如何创建自定义git命令?

git git-status git-stage git-ls-files git-rm

322
推荐指数
8
解决办法
13万
查看次数

JavaScript函数声明和评估顺序

为什么这些例子中的第一个不起作用,但所有其他例子都不起作用?

// 1 - does not work
(function() {
setTimeout(someFunction1, 10);
var someFunction1 = function() { alert('here1'); };
})();

// 2
(function() {
setTimeout(someFunction2, 10);
function someFunction2() { alert('here2'); }
})();

// 3
(function() {
setTimeout(function() { someFunction3(); }, 10);
var someFunction3 = function() { alert('here3'); };
})();

// 4
(function() {
setTimeout(function() { someFunction4(); }, 10);
function someFunction4() { alert('here4'); }
})();
Run Code Online (Sandbox Code Playgroud)

javascript function-declaration

79
推荐指数
1
解决办法
2万
查看次数

为什么Android不使用更多枚举?

我开始真的喜欢在代码中使用C#和Java枚举,原因如下:

  • 它们比整数,字符串或布尔标志集更加类型安全.
  • 它们导致更易读的代码.
  • 将枚举设置为无效值比使用int或string更困难.
  • 它们可以轻松发现变量或参数的允许值.
  • 我读过的所有内容都表明它们在C#和大多数JVM中的表现与整数一样好.

但是,Android框架有许多情况需要传递各种类型的标志,但它们似乎都没有使用枚举.在那里我会认为他们的使用将是有益的一对夫妇的例子是Toast.LENGTH_SHORT/ Toast.LENGTH_LONGView.GONE,View.VISIBLE等等.

为什么是这样?在Dalvik中,枚举的性能是否比简单的整数值差?还有其他一些我不知道的缺点吗?

enums android

79
推荐指数
3
解决办法
3万
查看次数

如何从GitHub中删除悬空提交?

昨天,我在GitHub上推送了ConnectBot的分支.我推了一次,意识到我没有按照我想要的方式进行更改,重新提交并再次推送.

现在,GitHub都提交了两个提交:

我的主分支只跟踪第二次提交,但第一次提交仍然可用,仍然在我的活动源中.如何删除它以确保没有人意外地提取该提交而不是更正的版本?

git github git-dangling

25
推荐指数
2
解决办法
4987
查看次数

使用Greasemonkey或Tampermonkey添加JavaScript按钮?

我对Greasemonkey的世界相当新,我想知道如何在JavaScript中创建一个按钮.

比如说我想在YouTube或Google上放一个按钮?我该如何调用它或制作它?

我很困惑,无法找到任何东西.除非有人与这些网站的HTML进行交互并将它们添加到Greasemonkey脚本中吗?

javascript greasemonkey button tampermonkey

15
推荐指数
2
解决办法
3万
查看次数

C#继承和覆盖基本属性

我目前需要一个自定义ListViewItem类 - 让我们称之为MyListViewItem.它需要有一些与每个项目关联的附加数据,并在更改Checked属性时执行一些操作.我尝试了几件事,但目前相关的代码如下所示:

class MyListViewItem : ListViewItem {
    new public bool Checked {
        get {
            return base.Checked;
        }
        set {
            base.Checked = value;
            // do some other things here based on value
        }
    }
    public MyListViewItem(Object otherData) {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当我点击ListView中的项目复选框时,我的setter永远不会被调用.有谁知道我做错了什么?我知道我可以使用父ListView的ItemChecked事件,但这似乎是一个不那么干净的解决方案.(另外我实际上并没有将Object传递给构造函数,但这部分并不重要).

c# inheritance properties

13
推荐指数
2
解决办法
4万
查看次数

使用Hashtable只存储密钥?

可能重复:
哪个集合用于存储唯一字符串?

我目前正在使用Dictionary <string,bool>来存储唯一标识符列表.这些标识符不需要有任何与之关联的数据 - 我只是使用Dictionary来快速检查重复项.

因为我只需要键,没有值,所以是一个字典是去这里的方式,还是有另一个我不知道的收藏品会更合适?

c# collections dictionary

13
推荐指数
2
解决办法
4157
查看次数

在Android/Java中实现类似C#的事件

我习惯用C#编程,我想念Java的一件事是它似乎没有C#的内置事件处理能力:

// define event signature
public delegate void SomeEventHandler();

class SomeEventGenerator {
    // define subscribable event property
    public event SomeEventHandler SomeEvent;

    protected void OnSomeEvent() {
        if (SomeEvent != null) {
            SomeEvent();
        }
    }
}

class SomeEventClient {
    public SomeEventClient(SomeEventGenerator eg) {
        // subscribe
        eg.SomeEvent += new SomeEventHandler(eg_SomeEvent);
        // do some stuff
        // unsubscribe
        eg.SomeEvent -= new SomeEventHandler(eg_SomeEvent);
    }

    private void eg_SomeEvent() {
        // handle event
    }
}
Run Code Online (Sandbox Code Playgroud)

在Java/Android中获得类似和轻量级的最佳方法是什么,它能够订阅/取消订阅多个事件客户端并立即调用所有订阅的客户端?

java events android

10
推荐指数
1
解决办法
2350
查看次数

委托/ lambda打字和强制如何工作?

我已经注意到一些在C#中处理lambda函数和匿名委托时工作和不起作用的事例.这里发生了什么?

class Test : Control {
    void testInvoke() {
        // The best overloaded method match for 'Invoke' has some invalid arguments
        Invoke(doSomething);

        // Cannot convert anonymous method to type 'System.Delegate' because it is not a delegate type
        Invoke(delegate { doSomething(); });

        // OK
        Invoke((Action)doSomething);

        // OK
        Invoke((Action)delegate { doSomething(); });

        // Cannot convert lambda expression to type 'System.Delegate' because it is not a delegate type
        Invoke(() => doSomething());

        // OK
        Invoke((Action)(() => doSomething()));
    }

    void testQueueUserWorkItem() {
        // The best …
Run Code Online (Sandbox Code Playgroud)

c# lambda delegates type-inference anonymous-methods

9
推荐指数
1
解决办法
1965
查看次数

算法:将列表从一个订单重新排列到另一个订单的最佳方法?

编辑:我不确定我原来的问题是否足够明确.我需要一种算法来计算最小的移动顺序,以便将数组从一个顺序重新排列到另一个顺序.众所周知,两个数组都包含相同的元素(没有重复)并且具有相同的长度.例如:

reorder(
  ['d', 'a', 'c', 'b', 'e'],
  ['a', 'b', 'c', 'd', 'e']
)
Run Code Online (Sandbox Code Playgroud)

应该返回类似的东西:

[
  {move:'d', after:'b'},
  {move:'c', after:'b'}
]
Run Code Online (Sandbox Code Playgroud)

这表明我应该首先将元素'd'移动到'b'之后,然后将'c'移动到'b'之后,数组将按所需顺序移动.


背景:我正在研究一个项目(实际上将rtgui中的大部分功能转移到客户端).现在我正在进行排序.基本上我有一个div列表,我想按任意顺序排序.我可以按如下方式获得所需的订单:

var hashes = {
  before: [],
  after: [],
};
var els = $('div.interesting-class').toArray();
var len = els.length;

for(var i = 0; i < len; i++) hashes.before.push(els[i].id);
els.sort(getSortComparator());
for(var i = 0; i < len; i++) hashes.after.push(els[i].id);
Run Code Online (Sandbox Code Playgroud)

现在hashes.before,hashes.after包含无序和有序的元素ID列表.重新排序列表时,到目前为止,最昂贵的操作实际上是移动DOM元素.我这样做的情况如下:

var c = $('#container-id');
$(els).each(function() {
  c.append(this);
});
Run Code Online (Sandbox Code Playgroud)

这可行,但速度比必要慢,因为平均来说,实际上只需要移动2或3个元素.因此,我需要一种算法来计算最小的移动顺序,以便将数组从一个顺序重新排列到另一个顺序(在这种情况下,操作hashes.before …

javascript algorithm diff jquery

6
推荐指数
1
解决办法
2226
查看次数