Currying 功能(Currying Functions)
优质
小牛编辑
136浏览
2023-12-01
Currying转换一个函数,该函数将多个参数转换为一系列函数,每个函数都采用一个参数。 Curried函数使用多个参数列表定义,如下所示 -
语法 (Syntax)
def strcat(s1: String)(s2: String) = s1 + s2
或者,您也可以使用以下语法来定义curried函数 -
语法 (Syntax)
def strcat(s1: String) = (s2: String) => s1 + s2
以下是调用curried函数的语法 -
语法 (Syntax)
strcat("foo")("bar")
您可以根据您的要求在curried函数上定义两个以上的参数。 尝试以下示例程序来显示currying概念。
例子 (Example)
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 。 以下命令用于编译和执行此程序。
Command
\>scalac Demo.scala
\>scala Demo
输出 (Output)
str1 + str2 = Hello, Scala!