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。