У меня есть код ниже:
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(_) обрабатывается?