Рассмотрим следующий фрагмент кода:
def foo(a: Int)(b: Int) = a + b
foo
Он не компилируется и выдает следующее сообщение об ошибке:
error: missing argument list for method foo
Unapplied methods are only converted to functions when
a function type is expected.
You can make this conversion explicit by writing
`foo _` or `foo(_)(_)` instead of `foo`.
Подсказка foo _
работает.Но если я напишу выражение
foo(_)(_)
, как было предложено в предыдущем сообщении об ошибке, я получу новое сообщение об ошибке:
error: missing parameter type for expanded
function ((x$1: <error>, x$2: <error>) => foo(x$1)(x$2))
Это кажется довольно нелогичным.
При каких обстоятельствах подсказка foo(_)(_)
должна быть полезной, что именно она говорит мне ?
(шум удален; чем больше япродолжал редактировать вопрос, тем меньше смысла он имел; Колмар прав)