English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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