Какими правилами следует руководствоваться подчеркиванием для определения анонимной функции?
я использую_
как заполнитель для создания анонимной функции, и проблема в том, что я не могу предсказать, как Scala собирается преобразовать мой код. Точнее, он по ошибке определяет, насколько «большую» анонимную функцию я хочу.
List(1,2,3) foreach println(_:Int) //error !
List(1,2,3) foreach (println(_:Int)) //work
List(1,2,3) foreach(println(_:Int)) //work
С помощью-Xprint:typer
Я вижу, что Scala превращает первый в «большую анонимную функцию»:
x$1 => List(1,2,3) foreach(println(x$1:Int))
отработанные 2-еправо превращение в то, что я хочу.
... foreach (x$1 => println(x$1:Int))
Почему это? Какое правило?