IT阔论

lambda表达式

2018-09-05  本文已影响2人  默云客
lambda表达式本质上是一个匿名函数,java中lambda表达式是从接口扩展而来,但对接口方法有严格要求,它要求在实现Lambda表达式的接口中只有一个抽象方法。这个方法称为sam(single abstract method),即单个抽象方法,能够使用Lambda表达式的接口称为“功能性接口”,如何对“功能性”接口进行语法检查,加一个注解@FunctionInterface。Scala中lambda表达式是一等公民,有def这样的高级类型接口,所以可以随意使用
val outer =10
val myFuncLiteral = (y: Int) => y * outer
val result = myFuncLiteral(2)
> 20

我们将函数文本分配给了变量 myFuncLiteral。
java 8 的lambda表达式和Scala的函数文本在语法和语义上的相似性是十分明显的。从语义上讲它们是相同的,而语法上的唯一不同就是箭头符号(java8 ->, scala =>)和没有提到的简化符号。

上一篇 下一篇

猜你喜欢

热点阅读