Scala 匿名函數(shù)
Scala 匿名函數(shù)
Scala 中定義匿名函數(shù)的語法很簡單,箭頭左邊是參數(shù)列表,右邊是函數(shù)體。
使用匿名函數(shù)后,我們的代碼變得更簡潔了。
下面的表達(dá)式就定義了一個(gè)接受一個(gè)Int類型輸入?yún)?shù)的匿名函數(shù):
var inc = (x:Int) => x+1
上述定義的匿名函數(shù),其實(shí)是下面這種寫法的簡寫:
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
相關(guān)文章
- JDBC 批量處理
- Hibernate 映射類型
- Maven 倉庫
- Maven 自動化部署
- Maven Eclipse
- Maven NetBeans
- Maven GroupID 和 ArtifactID 是什么
- Gson 教程
- Scala 數(shù)據(jù)類型
- Scala 訪問修飾符
- Scala IF...ELSE 語句
- Scala 閉包
- Scala 數(shù)組
- Scala Collection
- Scala Trait(特征)
- Spring 教程
- spring 創(chuàng)建應(yīng)用
- Spring AOP
- Spring JdbcTemplate教程
- Spring ORM框架