scala中函数的结合性
当有人说“scala中的函数关联到右边”时,这是什么意思scala中函数的结合性,scala,Scala,当有人说“scala中的函数关联到右边”时,这是什么意思 在Int=>Int=>Int的情况下,关联性是如何工作的呢Int=>Int函数类型等同于Int=>(Int=>Int)。换句话说,=>首先将事物分组在右侧,或者是右关联的 类型Int=>(Int=>Int)定义了一个单参数函数,该函数接受Int,其返回类型是从Int到Int的函数 那么,这样一个函数的例子是什么?我们可以使用以下类型编写名为sum的函数: val sum: Int => Int => Int = { (a:
在
Int=>Int=>Int
的情况下,关联性是如何工作的呢Int=>Int
函数类型等同于Int=>(Int=>Int)
。换句话说,=>
首先将事物分组在右侧,或者是右关联的
类型Int=>(Int=>Int)
定义了一个单参数函数,该函数接受Int
,其返回类型是从Int
到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
scala>val-sumWith3=sum(3)/`sum`接受一个Int参数
sumWith3:Int=>Int=//注意返回类型`Int=>Int`
scala>sumWith3(5)//接受一个Int参数
res0:Int=8//返回了一个Int
我可以将val-sum:Int=>Int=>Int写为val-sum:(a:Int)(b:Int):Int吗?