我正在尝试使用各种Scala实现的C#类似的yield return(即这一个)和"for" - 这样的构造:
private def permutations[T](s: Vector[T]) = {
def swap(i: Int, j: Int) {
val tmp = s(i)
s.set(i, s.get(j))
s.set(j, tmp)
}
iterator[Vector[T]] {
def generate(left: Int, right: Int): Unit @cps[Iteration[Vector[T]]] = {
if (left >= right)
yieldValue(s)
else {
generate(left, right)
for (i <- left to right) {
swap(left, i)
generate(left+1, right)
swap(left, i)
}
}
}
generate(0, s.size-1)
}
}
Run Code Online (Sandbox Code Playgroud)
但是这段代码编译错误:
error: no type parameters for method foreach: (f: (Int) => U)Unit exist …Run Code Online (Sandbox Code Playgroud) 我的意思是我需要通过一些数字或字符串来识别一组应用的补丁,以快速检查我是否拥有与没有任何同步的其他人相同的代码版本.
是否有一些内置的darcs解决方案?
在"git merge"中指定分支名称时是否可能以某种方式使用通配符?
例如,如果我有:
sbos@malta:~/tmp/texterra$ git branch -r
origin/HEAD -> origin/master
origin/master
origin/share/branch1
origin/share/branch2
origin/share/another-branch
Run Code Online (Sandbox Code Playgroud)
我可不可以做:
git merge origin/share/*
Run Code Online (Sandbox Code Playgroud)
与branch1,branch2和另一个分支合并?