У меня странная ситуация, которую я не понимаю. Я читаю книгу "Программирование на Scala", гл. 9.
Скажем, у меня есть каррированная функция:
def withThis(n:Int)(op:Int=>Unit){
println("Before")
op(n);
println("After")
}
Когда я вызываю его с одним аргументом внутри специального фигурного синтаксиса, он работает так, как ожидалось:
withThis(5){
(x) => {println("Hello!"); println(x); }
}
// Outputs
Before
Hello!
5
After
Однако, если я поставлю два утверждения, я получу что-то странное:
withThis(5){
println("Hello!")
println(_)
}
// Outputs
Hello!
Before
5
After
Как получилось "Привет!" печатается перед «До», а затем внутри печатается «5»? Я сумасшедший?