深入理解lambda

Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。

语法
lambda 函数的语法只包含一个语句,如下:

lambda [arg1 [,arg2,.....argn]]:expression

在lambda右侧的式子中,冒号左边的为参数值,右边的为计算表达式。

单层参数求和 

现在假设需要对两个数进行求和运算


嵌套参数求和 

注:下面的一段代码实际上是存在语法错误的,此代码的目的纯粹只是为了说明问题。请勿模仿



嵌套lambda 


将上图所示的转换过程与之前的转换进行一个分析,可以得到一个结论,在lambda的表达式中,前面的lambda为外层方法,后续lambda则为次外层方法,并以次由外向内递推。

变量作用域说明
关于变量在Lambda中的作用域从上面的几幅图中也可以看出一二来,主要可以做出以下几点的总结:

对局部变量可见
对全局变量可见
对当前层传入的参数可见
对上层函数传入的参数可见
对上层Lambda传入的参数可见

Lambda评价
优点:
在普通代码里几行的代码,在Lambda中只需要一行就可以解决。所以代码比以前更简洁了
可以在某一个方法内部定义,这样可以提高操作的便捷性
缺点:
Lambda是一个匿名函数,因为是匿名,所以可读性变差了
有时候有多个Lambda嵌套(就像实例中的第3点一样),让程序变得难以理解

参考文章:http://blog.csdn.net/lemon_tree12138/article/details/50774827
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值