这一篇是单独讲函数的高级特性,因为scala的精髓就是函数式编程,而函数式编程的精髓就在于他的高级特性。话不多说,直奔主题。
1. 匿名函数
匿名函数可以说是高级特性的基础,很多奇技淫巧都构建在他的基础之上。匿名函数即lambda表达式,基于数学中的λ演算得名(这里面有更深奥的数学理论,有兴趣可以去研究一下)。匿名函数的书写形式如下:
(x:Int) => {x+1}
也可以用一个变量来接收这个匿名函数:
var func= (x:Int) => {x+1}
然后就可以像这样调用:
var result = func(7)-1
你可以尽情发挥你的想象,把匿名函数放在几乎你想放的任何地方。它的好处是”不污染环境“,什么意思自己体会。这就是lambda表达式的神奇之处。
作为函数的参数你可以这样:
def func(fc:(T)=>Boolean)={} //定义一个接收函数的参数
func((i)=>{if(i>5) true}) //调用这个函数,传进去一个匿名函数