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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM