Latest web development tutorials

Scala 匿名函數

Scala 函數 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 )

Scala 函數 Scala函數