Lua中使用.和:調用函數(shù)的區(qū)別
更新時間:2015年04月22日 09:09:44 投稿:junjie
這篇文章主要介紹了Lua中使用.和:調用函數(shù)的區(qū)別,本文總結了它的調用函數(shù)的時傳入參數(shù)的區(qū)別,并給出了一個代碼實例,需要的朋友可以參考下
tb.print和tb:print的含義略微不同,:調用函數(shù)會多傳遞進去一個self進去,差不多相當于OOP里面的成員函數(shù)調用.
但是和OOP里面成員函數(shù)/非成員函數(shù)不同的是,lua里面的非成員函數(shù).調用,他不是靜態(tài)的.
tb對象有一個print function成員,當tb是nil的時候,你不能調用print成員的....在OOP里面,沒有這么一回事,非成員函數(shù)是全局的.
例子代碼:
復制代碼 代碼如下:
t = {x = 1}
t.foo = function(t)
print(t.x);
end
local a = {x = 2};
print(t.foo(a), t:foo(a));
輸出:
復制代碼 代碼如下:
2
1
nil