我是Scala的新手。原谅可能存在的愚蠢问题。所以我有这个curried的功能。是否可以在调用时调用其他参数?
def foo(a: Int)(b: Int): Int = a + b
我想调用类似的东西并使用
上的第一个参数foo(_)(_ - 1)
或类似的东西。
foo(_)(${0} - 5)
答案 0 :(得分:4)
定义方法时,可以为第二个参数提供一个引用第一个参数的默认值。
def foo(a: Int)(b: Int = a-1): Int = a + b
foo(9)() //res0: Int = 17
foo(9)(1) //res1: Int = 10
或者你可以创建一个包裹foo
的方法来获得你想要的东西。
def fooWrapper(x: Int) = foo(x)(x-1)
fooWrapper(4) //res0: Int = 7