scala 在很多場景中都是用了 => 因此對 => 的用法做了總結。
=> (Take LEFT then do RIGHT.)
=> 有幾種含義所有的含義都和它數學上面的含義相關。
- 表示函數的返回類型(Function Type)
scala> var x : (Int) => Int = double
- 匿名函數
var xx = (x: Int) => x + 1
- case 語句
scala> val max = x > y match {
case true => x
case false => y
}
- 所謂參數傳遞給函數(高階函數)
List(1,2,3).map { (x: Int) => x * 2 }
在使用playframework 裏面的連接數據庫的代碼中我們使用瞭如下的程序。
這裏conn =>就是作爲參數傳遞給了withConnection 方法。這裏使用{} 的原因就是等價於 db.withConnection(),只不過在Scala中()與{}很多時候可以替換,特別是參數是一個的時候基本都使用{}。寫成{}是因爲函數體是一個代碼塊,好看點。
需要用到的知識
匿名函數
沒有名字的函數就是匿名函數,可以通過函數表達式來設置匿名函數
val triple = (x: Double) => {
println("x=" + x)
3*x }
高階函數
能夠接受函數作爲參數的函數,叫做高階函數 (higher-order function)。可使應用程序更加健壯。
一種是將一個函數當做另外一個函數的參數(即函數參數);另外一種是返回值是函數的函數。