lua 函数 匿名函数

function testfun(tab, fun)
        for k, v in pairs(tab) do
                print(fun(k, v))
        end
end

tab = {key1 = "val1", key2 = "val2"};
testfun(tab, function(key, val)
        return key .. "=" .. val;
end
);

(学习网站说明:function 可以以匿名函数(anonymous function)的方式通过参数传递)

这里可能有点不好理解。

首先,定义了一个testfun函数,函数有两个参数。

然后就是,匿名函数;在调用testfun函数是,第二个参数是个匿名函数。

function(key, val)
        return key .. "=" .. val;
end

1.这个函数没有名称;

2.匿名函数的参数:key和val并没有定义;

3.匿名函数有自己的函数体:执行语句;

4.上面的匿名函数的返回值是提供给testfun里的print调用。

 

如上代码段,在对tab(表)数据进行输出时使用for循环语句,不需要事先定义k,v。

posted @ 2019-09-16 10:43  N_zero  阅读(3562)  评论(0)    收藏  举报