1、方便使用。因为它的定义就在所用之处,这不像函数一样。函数的一定往往在别处,如果你想修改实现代码,你就必须到别处去修改,这比较麻烦。
2、简洁。它不像类那么多代码,它代码很少。另外,它还可以用别名代替,如下图所示:
那么以后你就可以使用别名了。
你也可以把它当成普通函数使用,如下图所示:
它还可以放在某函数体内。
3,它可以被inline。因为一个函数一旦被取地址,它就不会被inline。这个理由我不太理解。
4、它还有其他功能。Lambda前边的[]是一个变量列表,有点像形参列表的样子。在[]中当你输入一个变量名时,相当于值传递;你输入一个&name时,相当于传递一个引用;你只输入一个&,那么所有变量都是传递引用;你只输入一个=,那么传递的都是值。
这些也可以混搭。比如说[ted,&ed]代表ted是值传递,而ed则传递的是引用,[&,ted]代表除了ted是值传递,其他传递的都是引用。[=,&ed]代表除了ed是引用传递以外,其他的都是值传递。
一个例子如下所示:
其实把lambda函数教程lambda表达式更贴切,因为它的确是个表达式。