Scala 匿名函数

Scala 函数 Scala 函数

Scala 中定义匿名函数的语法很简单,箭头左边是参数列表,右边是函数体。

使用匿名函数后,我们的代码变得更简洁了。

下面的表达式就定义了一个接受一个Int类型输入参数的匿名函数:

 var inc = (x:Int) => x+1 

上述定义的匿名函数,其实是下面这种写法的简写:

 def add2 = new Function1[Int,Int]{     def apply(x:Int):Int = x+1; } 

以上实例的 inc 现在可作为一个函数,使用方式如下:

 var x = inc(7)-1 

同样我们可以在匿名函数中定义多个参数:

 var mul = (x: Int, y: Int) => x*y 

mul 现在可作为一个函数,使用方式如下:

 println(mul(3, 4)) 

我们也可以不给匿名函数设置参数,如下所示:

 var userDir = () => { System.getProperty("user.dir") } 

userDir 现在可作为一个函数,使用方式如下:

 println( userDir() ) 

实例

实例

object Demo {
   def main(args: Array[String]) {
      println( "multiplier(1) value = " +  multiplier(1) )
      println( "multiplier(2) value = " +  multiplier(2) )
   }
   var factor = 3
   val multiplier = (i:Int) => i * factor
}

将以上代码保持到 Demo.scala 文件中,执行以下命令:

 $ scalac Demo.scala $ scala Demo 

输出结果为:

 multiplier(1) value = 3 multiplier(2) value = 6 

Scala 函数 Scala 函数