Scala 中的 匿名函数 是没有方法名,也不用 def 定义的函数。一般匿名函数都是一个 表达式
因此 匿名函数 非常适合替换那些只用一次且任务简单的常规函数
匿名函数,会使得我们的代码变得更简洁了。
匿名函数的语法很简单,箭头左边是参数列表,右边是函数体。
定义匿名函数的语法为:
(param1,param2) => [expression]
下面的表达式就定义了一个接受一个Int类型输入参数的匿名函数:
var inc = (x:Int) => x+1
上述定义的匿名函数,其实是下面这个常规函数的简写:
def add(x:Int):Int {
return 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 = 5
val multiplier = (i:Int) => i * factor
编译执行上面的代码,输出为:
multiplier(1) value = 5
multiplier(2) value = 10