Я играл немного с заполнителем и обнаружил странный случай:Scala: заполнитель внутри кортежа
val integers = Seq(1, 2)
val f = (x:Int) => x + 1
integers.map((_, f(_)))
который возвращает
Seq[(Int, Int => Int)] = List((1,<function1>), (2,<function1>))
Я ожидал
Seq[(Int, Int)] = List((1, 2), (2, 3))
Если я внести следующие изменения: все работает должным образом:
integers.map(i => (i, f(i)))
Любая идея, почему функция f
не применяется во время отображения?
Другими словами @Francis ваша программа эквивалентна: 'val integers = Seq (1, 2); val f = (x: Int) => x + 1; val g = f (_); integers.map ((_, g)) ' – mjaskowski