У меня странная ситуация, которую я не понимаю. Я читаю книгу «Программирование на 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" печатается внутри? Я что, сумасшедший?