Scala 匿名函數(shù)

Scala 匿名函數(shù)

Scala 函數(shù) Scala 函數(shù)

Scala 中定義匿名函數(shù)的語(yǔ)法很簡(jiǎn)單,箭頭左邊是參數(shù)列表,右邊是函數(shù)體。

使用匿名函數(shù)后,我們的代碼變得更簡(jiǎn)潔了。

下面的表達(dá)式就定義了一個(gè)接受一個(gè)Int類(lèi)型輸入?yún)?shù)的匿名函數(shù):

var inc = (x:Int) => x+1

上述定義的匿名函數(shù),其實(shí)是下面這種寫(xiě)法的簡(jiǎn)寫(xiě):

def add2 = new Function1[Int,Int]{  
    def apply(x:Int):Int = x+1;  
} 

以上范例的 inc 現(xiàn)在可作為一個(gè)函數(shù),使用方式如下:

var x = inc(7)-1

同樣我們可以在匿名函數(shù)中定義多個(gè)參數(shù):

var mul = (x: Int, y: Int) => x*y

mul 現(xiàn)在可作為一個(gè)函數(shù),使用方式如下:

println(mul(3, 4))

我們也可以不給匿名函數(shù)設(shè)置參數(shù),如下所示:

var userDir = () => { System.getProperty("user.dir") }

userDir 現(xiàn)在可作為一個(gè)函數(shù),使用方式如下:

println( userDir() )

范例

object Demo {    def main(args: Array[String]) {       println( "multiplier(1) value = " +  multiplier(1) )       println( "multiplier(2) value = " +  multiplier(2) )    }    var factor = 3    val multiplier = (i:Int) => i * factor }

將以上代碼保持到 Demo.scala 文件中,執(zhí)行以下命令:

$ scalac Demo.scala
$ scala Demo

輸出結(jié)果為:

multiplier(1) value = 3
multiplier(2) value = 6

Scala 函數(shù) Scala 函數(shù)

下一節(jié):Scala 函數(shù)柯里化(Currying)

Scala 教程

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频