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!
scala_functions.htm
广告