Рассмотрим следующее определение в Scala:
val f = ((_: Int) + 1).toString()
Код присваивает строковому представлению функции литерал _ + 1, что вполне естественно, за исключением того, что это не то, что мне нужно. я намеревался определить функцию, которая принимает аргумент int, увеличивает его на 1 и возвращает формат строки.
Чтобы устранить неоднозначность, я должен написать лямбда-выражение с явными параметрами:
val g = (x: Int) => (x + 1).toString()
Так можно ли сделать вывод, что синтаксис заполнителя не подходит для литералов сложных функций?
Или есть какое-то правило, определяющее область действия литерала функции? Кажется, заполнители не могут быть вложены в круглые скобки (кроме тех, которые необходимы для определения его типа) внутри литерала функции