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 )