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)。可使应用程序更加健壮。
一种是将一个函数当做另外一个函数的参数(即函数参数);另外一种是返回值是函数的函数。