Scala学习(十一)——lambda表达式

Scala学习(十一)——lambda表达式

本站内容版权属于本人。转载须告知本人,写明出处,并在文首提供指向本站对应文章的链接。
本文链接:Scala学习(十一)——lambda表达式
简介

lambda表达式是现在非常流行的一种编程特性,其体现了函数式编程的思想。lambda表达式,顾名思义,是一种表达式。和其他表达式不同的地方在于,其返回的是一个函数对象而不是一个数。

基本用法

回顾Scala学习四的“方法”一节,方法的类型同样适合于lambda表达式的类型。而lambda表达式的定义方式和其类型的定义方式比较类似,是参数名列表,=>,函数体:

之前说过,大括号在只有一个语句时可以省略:

当然,如果只有一个参数的话,参数列表的括号也可以去掉:

变型

在一些情况下,可以用_来定义一个lambda表达式,比如上例可写成:

在多参数清况下也可以使用_,其用法是:第一个_代替第一个参数,第二个_代替第二个参数,依此类推。见下例:

闭包

类似Java中匿名类的特点,Scala中方法内定义的函数或是lambda表达式中可以用到本方法的局部变量,这一性质称作闭包。Scala中闭包的功能更完善,可以做到类似Javascript的程度:

这里只是举个例子,实际中不一定会这么实现。

总结

其实lambda表达式说白了就是一个定义函数的方式,其优势在于简洁。至于什么地方会用到,且看之后的章节。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据