Scala - Currying 函数
Currying 将一个接受多个参数的函数转换为一个函数链,每个函数接受一个参数。 柯里化函数定义有多个参数列表,如下 −
语法
def strcat(s1: String)(s2: String) = s1 + s2
或者,您也可以使用以下语法来定义 curried 函数 −
语法
def strcat(s1: String) = (s2: String) => s1 + s2
以下是调用 curried 函数的语法 −
语法
strcat("foo")("bar")
您可以根据您的要求在 curried 函数上定义两个以上的参数。 尝试以下示例程序来展示柯里化概念。
示例
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!