2

当有人说“ scala 中的函数关联到右边”是什么意思?

而且,万一关联性如何工作Int => Int => Int

4

1 回答 1

2

函数类型Int => Int => Int等价于Int => (Int => Int)。换句话说,=>首先将右侧的事物分组,或者是右关联的。

该类型Int => (Int => Int)定义了一个单参数函数,该函数接受 aInt并且其返回类型是 function from Intto Int

那么这种功能的例子是什么?我们可以编写一个sum用这种类型调用的函数:

val sum: Int => Int => Int = {
  (a: Int) =>
    {
      (b: Int) =>
        a + b
    }
}

所以sum接受一个参数a并返回一个新函数,该函数接受和参数b并返回和的ab

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
于 2012-09-27T07:51:09.360 回答