scala中函数的相关性

时间:2012-09-27 07:49:37

标签: scala

当有人说“scala中的功能正确”时,这意味着什么?

而且,关联性如何在Int => Int => Int

的情况下起作用

1 个答案:

答案 0 :(得分:2)

函数类型Int => Int => Int相当于Int => (Int => Int)。换句话说,=>首先对右侧的内容进行分组,或者是右对联的。

类型Int => (Int => Int)定义单个参数函数,该函数接受Int,其返回类型的函数从IntInt

那么这个功能的例子是什么?我们可以用这种类型编写一个名为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