我正在尝试从主人那里挑选一个提交并将其放入当前的生产分支.但是,当我执行时git cherry-pick <SHA-hash>
,我只收到此消息:
# On branch prod_20110801
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
# site/test-result/
nothing added to commit but untracked files present (use "git add" to track)
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:
git commit --allow-empty
Otherwise, please use 'git reset'
Run Code Online (Sandbox Code Playgroud)
注意:我尝试过重置和重置 - 硬HEAD ^,似乎都没有改变任何东西.
我很困惑为什么这不适合我.
任何关于如何解决这个问题的见解,建议或想法都会有所帮助〜!
给定以下用于在Scala中定义函数的构造,您能解释一下它们之间的区别,以及它们的含义是什么?
def foo = {}
Run Code Online (Sandbox Code Playgroud)
与
def foo() = {}
Run Code Online (Sandbox Code Playgroud)
更新
感谢您的快速回复.这些都很棒.对我来说唯一的问题是:
如果我省略括号,是否还有办法传递函数?这是我在repl中得到的:
scala> def foo = {}
foo: Unit
scala> def baz() = {}
baz: ()Unit
scala> def test(arg: () => Unit) = { arg }
test: (arg: () => Unit)() => Unit
scala> test(foo)
<console>:10: error: type mismatch;
found : Unit
required: () => Unit
test(foo)
^
scala> test(baz)
res1: () => Unit = <function0>
Run Code Online (Sandbox Code Playgroud)
更新2012-09-14
以下是我注意到的一些类似问题:
jvm programming-languages functional-programming scala jvm-languages
=
和:=
Scala有什么区别?
我已广泛搜索"scala colon-equals",但无法找到任何确定的内容.
[B >: A]
在Scala 中意味着什么?有什么影响?
示例参考:http://www.scala-lang.org/node/129
class Stack[+A] {
def push[B >: A](elem: B): Stack[B] = new Stack[B] {
override def top: B = elem
override def pop: Stack[B] = Stack.this
override def toString() = elem.toString() + " " + Stack.this.toString()
}
def top: A = error("no element on stack")
def pop: Stack[A] = error("no element on stack")
override def toString() = ""
}
object VariancesTest extends Application {
var s: Stack[Any] = new Stack().push("hello");
s = …
Run Code Online (Sandbox Code Playgroud) 所以我在Scala中有一个这样的地图:
val m = Map[String, String](
"a" -> "theA",
"b" -> "theB",
"c" -> "theC",
"d" -> "theD",
"e" -> "theE"
)
Run Code Online (Sandbox Code Playgroud)
我想使用lift-json将此结构序列化为JSON字符串.
你们中的任何人都知道怎么做吗?
我想了解这个Scala脚本的工作原理:
#!/usr/bin/env bash
exec scala "$0" "$@"
!#
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world! " + args.toList)
}
}
HelloWorld main args
Run Code Online (Sandbox Code Playgroud)
在第3行,什么是"!#"在做什么?然后文件的其余部分被送到Scala程序的标准输入端吗?还有,'!#'记录在哪里?
注意:我能找到的最接近的东西,虽然它没有任何直接相关性,但是Stack Overflow问题为什么你需要在脚本文件的开头加上#!/ bin/bash?(关于Bash脚本的开头).
如何使用Scala在Play-Framework中读取控制器中cookie的值?
在我的控制器中我有这个:
println(Http.Request.current().headers.get("cookie"))
Run Code Online (Sandbox Code Playgroud)
输出是这样的:
[csrftoken=011d7cfe84915ee9897c8c6079d49d5a; test=value]
Run Code Online (Sandbox Code Playgroud)
而且我希望除了解析字符串之外,有更好的方法来访问"test"的值..;)
假设我们有一个Option [String],如果那里有Some(字符串),我们想把它变成Int到.toInt.我会做以下事情:
val foo: Option[String] = Some("5")
val baz: Option[Int] = foo match {
case Some(thing) => Some(thing.toInt)
case None => None
}
Run Code Online (Sandbox Code Playgroud)
这非常有效.然而,它看起来非常冗长,并且像很多工作一样.任何人都可以告诉我一个更简单的方法吗?
谢谢!
你们中的任何人都知道为什么Scalaz的例子总是使用这种导入技术:
import scalaz._
import Scalaz._
Run Code Online (Sandbox Code Playgroud)
而不是:
import scalaz.Scalaz._
Run Code Online (Sandbox Code Playgroud)
?我试图理解偏好背后的原因是什么.
谢谢!
我发现自己经常使用频道让事情停止.在这些情况下,信道仅用作信令的手段,并且实际上没有使用任何数据.
例如:
package main
import (
"fmt"
"time"
)
func routine(stopChan chan bool) {
fmt.Println("goroutine: I've started!")
<-stopChan
fmt.Println("goroutine: Cya'round pal")
}
func main() {
fmt.Println("main: Sample program run started")
stopChan := make(chan bool)
go routine(stopChan)
fmt.Println("main: Fired up the goroutine")
stopChan <- true
time.Sleep(1 * time.Second)
fmt.Println("main: Sample program run finished")
}
Run Code Online (Sandbox Code Playgroud)
// Sample output:
//
// main: Sample program run started
// main: Fired up the goroutine
// goroutine: I've started!
// goroutine: Cya'round pal
// main: Sample …
Run Code Online (Sandbox Code Playgroud)