【发布时间】:2016-05-05 16:30:58
【问题描述】:
我的代码如下:
test("temp") {
def greeting(func: (String) => Unit, name: String) {
func(name)
}
// Success
greeting(println(_), "Hello")
greeting( { case _ => println("" + `_`) }, "Hello")
// Failed
greeting(println("" + _), "Hello")
greeting(println("a"), "Hello")
}
错误信息是:
Error:(52, 29) type mismatch;
found : Unit
required: String => Unit
greeting(println("" + _), "Hello")
Error:(53, 29) type mismatch;
found : Unit
required: String => Unit
greeting(println("a"), "Hello")
^
我不是很明白。 println("" + _) 和 (String) => Unit 有什么区别?为什么 println("a") 没有被视为 (String) => Unit 而 println(_) 呢?
【问题讨论】: