var f(i:Int=2,j:Int) => i + j
Это не работает.Если вы хотите определить лямбду, попробуйте это
val f = (i:Int,j:Int) => i + j
Это правильный подход.Также вы не можете назначить значения по умолчанию в лямбде.Вы должны определить методы с ключевым словом def.Попробуйте это:
def f(i:Int, j:Int=2) = i + j
Параметр со значением по умолчанию должен быть последним параметром, потому что компилятор scala будет сканировать значения слева направо.Он будет использовать значения по умолчанию, только если они отсутствуют.В приведенном выше коде f(1)
будет выдавать 3, потому что j
будет использовать 2 в качестве значения по умолчанию.Поэтому используйте обязательные аргументы слева и аргументы со значениями по умолчанию справа.Надеюсь, это поможет
Объяснено здесь: В Scala вы можете сделать так, чтобы у анонимной функции был аргумент по умолчанию?