我们在C++里面使用lambda的时候,形式大致如下
int a = 30;
auto f = [a](auto var)
{
cout << a << " " << var << endl;
};
f(20);
f(2.1f);
在Lua使用所谓的Lambda,其实就是使用一个临时函数变量,如下
local a = 30
local f = function(var)
print(a, var)
end
f(20)
f(2.1)
二者的使用形式非常像。
一个重要的不同点在于Lambda内部如果要使用外界的变量,C++需要在[]里面进行捕获,而Lua则不用,它天然就可以拿到外面的变量!