Scala - 匿名函式



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 )
scala_functions.htm
廣告