Scala匿名函式

2019-10-16 23:14:41

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 )