Scala 柯里化函数
柯里化将接受多个参数的函数转换为一系列函数,每个函数接受一个参数。柯里化函数的定义为多参数列表,如下所示−
语法
def strcat(s1: String)(s2: String) = s1 + s2
或者,您还可以使用以下语法来定义柯里化函数 −
语法
def strcat(s1: String) = (s2: String) => s1 + s2
以下是调用柯里化函数的语法 –
语法
strcat("foo")("bar")
您可以根据需要在柯里化函数上定义超过两个参数。尝试以下示例程序以展示柯里化的概念。
示例
object Demo {
def main(args: Array[String]) {
val str1:String = "Hello, "
val str2:String = "Scala!"
println( "str1 + str2 = " + strcat(str1)(str2) )
}
def strcat(s1: String)(s2: String) = {
s1 + s2
}
}
将上述程序保存在 Demo.scala 文件中。下面的命令用于编译和执行该程序。
命令
>scalac Demo.scala
\>scala Demo
输出
str1 + str2 = Hello, Scala!