我有这种奇怪的情况,我不明白。我正在阅读“Scala 编程”一书,Ch。9.
假设我有一个咖喱函数:
def withThis(n:Int)(op:Int=>Unit){
println("Before")
op(n);
println("After")
}
当我在特殊的 curly-syntax 中使用一个参数调用它时,它按预期工作:
withThis(5){
(x) => {println("Hello!"); println(x); }
}
// Outputs
Before
Hello!
5
After
但是,如果我提出两个陈述,我会得到一些奇怪的东西:
withThis(5){
println("Hello!")
println(_)
}
// Outputs
Hello!
Before
5
After
“你好!”怎么来的?在“之前”之前打印,然后在里面打印“5”?我疯了吗?