在scala中部分应用的函数

时间:2016-08-04 13:17:35

标签: scala

我试图了解scala中的部分应用函数

scala> val a=sum _
a: (Int, Int, Int) => Int = <function3>

scala> a(1,2,3)
res7: Int = 6

我只是给这个val a=sum _

我想了解scala如何解释它将需要3个参数

a: (Int, Int, Int) => Int = <function3>

1 个答案:

答案 0 :(得分:1)

您刚刚体验到将eta-expansion转换为method的{​​{1}}。

您的方法是function,您没有演示,但根据功能版本必须:

sum

您最后添加的下划线是将您的方法转换为函数,因为结果的描述性类型签名显示:def sum(a:Int,b:Int,c:Int):Int = a + b + c

通过这种方式,您可以将方法转换为函数值,该值可以分配给变量并在应用程序逻辑中传递,从而传达对数据的行为更改(在您的实例中添加)。 / p>