lambda表达式,在很多语言里(比如说谷歌的小儿子kotlin),称为语法糖。
所谓的语法糖,就是这种语法让程序猿喜欢(可能部分人会因为不够直观而不喜欢),就像孩子喜欢糖果一样。
在其他语言中,lambda的详细情况我不细讲,我这里就是稍微深入了解了下CPython的lambda。
它的标准写法是这样的:
变量=参数1[参数2[...]] : 参数的表达式
比如有这样的函数:
def sum(x,y):
return x+y
这个函数是用lambda表达式就可以这样子写:
sum = x,y : x+y
然后调用:
print(sum(1,2))
打印出来是 3
变量sum,在将lambda表达式赋值给它的时候,其实是得到了这个匿名函数的地址或者说函数对象。
lambda本质上是函数的一种,它是匿名函数,只有一行,不能包含命令,只能有一个表达式,有有效范围,而且不能访问参数列表外的变量。
它的作用就是为了减少单行函数的数量,并非其他语言内联函数那样能够起到减少内存开支的作用。