Scala提供了一個相對輕量級的語法來定義匿名函式。原始碼中的匿名函式稱為函式文字,在執行時,函式文字被範例化為稱為函式值的物件。
Scala支援一級函式,函式可以用函式文字語法表達,即(x:Int)=> x + 1
,該函式可以由一個叫作函式值的物件來表示。
嘗試以下表示式,它為整數建立一個後繼函式 -
var inc = (x: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 )