Scala中的函数表达式

 

 

    最近看Spark的东西,由于之前没有接触过lambda函数表达式,所以搜了点资料,特地纪录在此

 

Scala中的Lambda表达式

在函数式编程中,函数是基本的构造块。Scala融合了java中的面向对象编程和函数式编程。在Scala中,一个lambda表达式是种叫做“函数”或者“函数文本”。Scala中的函数属于一等公民。它们可以被分配给vals或者vars(最终变量或者非最终变量),它们可以作为其他函数的参数,也可以组合成新的函数。
在Scala中一个函数文本写成如下形式:
?
1
(argument) = > //funtion body

 

举例来说,前面提到的java 用来计算两个字符串长度差的 lambda 表达式,在Scala中写作如下:
?
1
(s 1 : String, s 2 : String) = > s 1 .length - s 2 .length

 

Scala中的函数文本也是闭包。它可以访问在直接词法作用域之外定义的变量。
?
1
2
3
4
val outer = 10
val myFuncLiteral = (y : Int) = > y * outer
val result = myFuncLiteral( 2 )
> 20

 

这个例子结果是20.
正如你所见,我们将函数文本分配给了变量 myFuncLiteral。
java 8 的lambda表达式和Scala的函数文本在语法和语义上的相似性是十分明显的。从语义上讲它们是相同的,而语法上的唯一不同就是箭头符号(java8 ->, scala =>)和我们没有提到的简化符号。
 
引用:http://my.oschina.net/atttx123/blog/66425

转载于:https://www.cnblogs.com/inspursu/p/4276469.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值