小编Fre*_*abe的帖子

如何显示已上演的更改?

我上演了一些改变来承诺; 如何查看为下一次提交而暂存的所有文件的差异?我知道git状态,但我想看到实际的差异 - 而不仅仅是分阶段文件的名称.

我看到git-diff(1)手册页说

git diff [--options] [ - ] [...]

此表单用于查看您对索引所做的更改(下一次提交的暂存区域).换句话说,差异是你可以告诉git进一步添加到索引但你还没有.您可以使用git-add(1)暂存这些更改.

不幸的是,我无法理解这一点.必须有一些方便的单行,我可以创建一个别名,对吗?

git diff dvcs git-diff git-stage

2034
推荐指数
12
解决办法
78万
查看次数

System.Diagnostics.Debug.Write输出出现在哪里?

以下C#程序(内置csc hello.cs)仅Hello via Console!在控制台和Hello via OutputDebugStringDebugView窗口中打印.但是,我看不到任何一个System.Diagnostics.*电话.这是为什么?

using System;
using System.Runtime.InteropServices;
class Hello {
    [DllImport("kernel32.dll", CharSet=CharSet.Auto)]
    public static extern void OutputDebugString(string message);

    static void Main() {
        Console.Write( "Hello via Console!" );
        System.Diagnostics.Debug.Write( "Hello via Debug!" );
        System.Diagnostics.Trace.Write( "Hello via Trace!" );
        OutputDebugString( "Hello via OutputDebugString" );
    }
}
Run Code Online (Sandbox Code Playgroud)

是否需要一些特殊的命令行开关csc

我没有使用Visual Studio进行任何开发,这是纯粹的命令行.

c# debugging

138
推荐指数
6
解决办法
18万
查看次数

如何轻松修复过去的提交?

我刚刚读过修改git过去提交中的单个文件,但不幸的是,接受的解决方案"重新排序"了提交,这不是我想要的.所以这是我的问题:

我偶尔会在处理(无关)功能时发现我的代码中存在错误.然后快速git blame揭示该错误已经被引入了一些提交之前(我提交了很多,所以通常它不是引入该错误的最新提交).此时,我通常这样做:

git stash                      # temporarily put my work aside
git rebase -i <bad_commit>~1   # rebase one step before the bad commit
                               # mark broken commit for editing
vim <affected_sources>         # fix the bug
git add <affected_sources>     # stage fixes
git commit -C <bad_commit>     # commit fixes using same log message as before
git rebase --continue          # base all later changes onto this
Run Code Online (Sandbox Code Playgroud)

然而,这种情况经常发生,上述序列变得烦人.特别是'互动式底板'很无聊.上面的序列是否有任何快捷方式,这可以让我修改过去的任意提交和分阶段的更改?我完全清楚这会改变历史,但我经常犯错误,所以我真的很喜欢这样的事情.

vim <affected_sources>             # fix bug
git add -p <affected_sources>      # Mark …
Run Code Online (Sandbox Code Playgroud)

git rewrite

100
推荐指数
8
解决办法
5万
查看次数

我怎样才能表示未使用的函数参数?

当"解构"元组时,我可以_用来表示我不感兴趣的元组元素,例如

>>> a,_,_ = (1,2,3)
>>> a
1
Run Code Online (Sandbox Code Playgroud)

使用Python 2.x,如何用函数参数表达相同的内容?我试图使用下划线:

>>> def f(a,_,_): return a
...
  File "<stdin>", line 1
SyntaxError: duplicate argument '_' in function definition
Run Code Online (Sandbox Code Playgroud)

我也试图完全省略这个论点:

>>> def f(a,,): return a
  File "<stdin>", line 1
    def f(a,,): return a
        ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

还有另一种方法可以达到同样的目的吗?

python python-2.x

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

我应该如何公开Python类的只读字段?

我有许多不同的小类,每个小类都有几个字段,例如:

class Article:
    def __init__(self, name, available):
        self.name = name
        self.available = available
Run Code Online (Sandbox Code Playgroud)

什么是使该name字段只读的最简单和/或最惯用的方式,所以

a = Article("Pineapple", True)
a.name = "Banana"  # <-- should not be possible
Run Code Online (Sandbox Code Playgroud)

不可能了吗?

这是我到目前为止所考虑的:

  1. 使用吸气剂(呃!).

    class Article:
        def __init__(self, name, available):
            self._name = name
            self.available = available
    
        def name(self):
            return self._name
    
    Run Code Online (Sandbox Code Playgroud)

    丑陋,非pythonic - 以及许多要编写的样板代码(特别是如果我有多个字段可以进行只读).但是,它完成了工作,很容易理解为什么会这样.

  2. 用途__setattr__:

    class Article:
        def __init__(self, name, available):
            self.name = name
            self.available = available
    
        def __setattr__(self, name, value):
            if name == "name":
                raise Exception("%s property is read-only" % …
    Run Code Online (Sandbox Code Playgroud)

python

28
推荐指数
4
解决办法
1万
查看次数

我怎样才能看到另一个分支从哪个分支分叉?

我的git存储库有三个分支devel,stablecustomers/acme_patches.很久以前,它stable是分叉的devel,并且所有的错误修正都发生在stable.时不时地stable被合并回来devel.customers/acme_patches是一个具有一些客户特定补丁的分支.该分支未合并为develstable.

一些ASCII艺术来说明场景:

            o---o---o          customers/acme_patches?
           /
  o---o---1---o---o---o        stable
 /     \           \
o---o---o---2---o---o---o---o  devel
             \
              o---o---o        customers/acme_patches?

现在我想知道:

customers/acme_patches分叉的是什么分支- devel或者stable?我只是知道它过去曾分离过其中一个,但我不知道哪个.例如它可能已经提交12在上图中.

我一直在玩git log --oneline --graph,gitk但自从customers/acme_patches分开了几百次提交之后,很难按照画出的线条.

是否有一个快速命令(一个小脚本也可以),它可以以某种方式跟随提交customers/acme_patches向后找到第一个提交有两个孩子(叉点),然后确定是否在stable或在中提交devel

在最好的情况下,我可以执行类似的操作(请原谅,我在Windows上):

C:\src> git fork-origin customers/acme_patches
stable
Run Code Online (Sandbox Code Playgroud)

git branch

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

如何使用文件路径减少git bisect运行?

我正在使用git bisect来查找导致提交的失败.但是,该范围内的许多提交肯定是无关紧要的(因为它们是对文档或单元测试的提交).我想让git bisect自动跳过影响某些目录中文件的提交.这有可能吗?

git git-bisect

21
推荐指数
1
解决办法
3099
查看次数

为什么'int x = +"foo";' 类型错误但不是语法错误?

我试过的所有编译器都正确拒绝了代码

int main() {
  int x = "foo";
}
Run Code Online (Sandbox Code Playgroud)

带有类型错误:const char[4]无法转换为int.为什么相同的编译器(包括Ideone.com)会给出相同的错误

int main() {
  int x = + "foo";
}
Run Code Online (Sandbox Code Playgroud)

而不是(我想到的)语法错误因为+符号?我的第一个想法是const char[4]衰减指针,而指针又被视为一个整数值,因此+表示"正".虽然看起来有点牵强,但我希望看到const char*出现在错误消息中.

c++

21
推荐指数
3
解决办法
2268
查看次数

为什么使用头/尾代替模式匹配会使评估终止?

作为练习,我试图定义一个ruler

ruler :: (Num a, Enum a) => [a]
Run Code Online (Sandbox Code Playgroud)

这对应于标尺功能

0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2...
Run Code Online (Sandbox Code Playgroud)

其中n列表的第th个元素(假设第一个元素对应n=1)是2的最大幂,它均匀分割n.为了使它更有趣,我试图实现ruler而不必进行任何可分性测试.

使用辅助函数

interleave :: [a] -> [a] -> [a]
Run Code Online (Sandbox Code Playgroud)

这简单地交替了两个给定列表中的元素,我想出了这个 - 但是它不起作用:

interleave :: [a] -> [a] -> [a]
interleave  (x:xs) (y:ys) = x : y : interleave xs ys
interleave  _      _      = []

ruler :: (Num a, Enum a) => [a]
ruler = foldr1 interleave . map repeat $ [0..]

main :: IO ()
main = print …
Run Code Online (Sandbox Code Playgroud)

haskell list lazy-evaluation

20
推荐指数
2
解决办法
1173
查看次数

对于非常规递归类型,catamorphism(fold)的类型是什么?

许多catamorphisms似乎很简单,大多数用自定义函数替换每个数据构造函数,例如

data Bool = False | True
foldBool :: r              -- False constructor
         -> r              -- True constructor
         -> Bool -> r

data Maybe a = Nothing | Just a
foldMaybe :: b             -- Nothing constructor
          -> (a -> b)      -- Just constructor
          -> Maybe a -> b

data List a = Empty | Cons a (List a)
foldList :: b              -- Empty constructor
         -> (a -> b -> b)  -- Cons constructor
         -> List a -> b
Run Code Online (Sandbox Code Playgroud)

但是,对我来说不清楚的是,如果使用相同类型的构造函数,但使用不同的类型参数会发生什么.例如,而不是传递List …

haskell types catamorphism recursion-schemes

18
推荐指数
1
解决办法
479
查看次数