当有人说“ scala 中的函数关联到右边”是什么意思?
而且,万一关联性如何工作Int => Int => Int
函数类型Int => Int => Int
等价于Int => (Int => Int)
。换句话说,=>
首先将右侧的事物分组,或者是右关联的。
该类型Int => (Int => Int)
定义了一个单参数函数,该函数接受 aInt
并且其返回类型是 function from Int
to Int
。
那么这种功能的例子是什么?我们可以编写一个sum
用这种类型调用的函数:
val sum: Int => Int => Int = {
(a: Int) =>
{
(b: Int) =>
a + b
}
}
所以sum
接受一个参数a
并返回一个新函数,该函数接受和参数b
并返回和的a
和b
:
scala> val sumWith3 = sum(3) // `sum` takes an Int argument
sumWith3: Int => Int = <function1> // notice the return type of `Int => Int`
scala> sumWith3(5) // takes an Int argument
res0: Int = 8 // returned an Int