在Scala中,是否可以在其他参数中使用curried参数?

时间:2018-01-30 05:12:23

标签: scala

我是Scala的新手。原谅可能存在的愚蠢问题。所以我有这个curried的功能。是否可以在调用时调用其他参数?

def foo(a: Int)(b: Int): Int = a + b

我想调用类似的东西并使用

上的第一个参数
foo(_)(_ - 1)

或类似的东西。

foo(_)(${0} - 5)

1 个答案:

答案 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