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 )