Можно ли вызвать функцию apply непосредственно из результата метода, который принимает второй список параметров (с неявным аргументом)? Даже с круглыми скобками в логическом месте я получаю ту же ошибку типа компиляции, которая указывает, что она не анализирует ее, как ожидалось.Ассоциативность операторов Scala (2-й список параметров)
val x = Map(1 -> 2, 2->4, 3-> 6) //1
val y = x.map(_.swap) //2
y(4) //3
x.map(_.swap)(4) //4
((x.map(_.swap))(4) //5
Line 4 имеет смысл не разобрать, так как (4) легко, как представляется, второй список параметров для отображения(), но строка 5, есть множество() 's вокруг .map выражения , но он все еще связывает (4) с .map, а не с результатом .map().
Есть ли способ сделать строки 2 и 3 в одном выражении?
EDIT: Я знаю, что .apply() - это то, что компилятор будет вставлять. Есть ли способ сделать это без ручного обезжиривания?
Я знаю, что «применимо». Я искал что-то, что не требует ручного «обезжиривания»; другими словами, что-то, что следует за нормальным составом выражений (как объединение строк 2 и 3) – eques
'(breakOut)' не будет работать для примера OP, потому что «Карта» потеряна. Он превращается в Seq кортежей. – jwvh
пример - пример; то есть не важно, что это «Карта» или что '.map()' вызывается. Важно только, что это функция, которая имеет второй список параметров с неявным аргументом, и тип результата поддерживает 'apply' – eques