Lua中使用.和:調(diào)用函數(shù)的區(qū)別
tb.print和tb:print的含義略微不同,:調(diào)用函數(shù)會(huì)多傳遞進(jìn)去一個(gè)self進(jìn)去,差不多相當(dāng)于OOP里面的成員函數(shù)調(diào)用.
但是和OOP里面成員函數(shù)/非成員函數(shù)不同的是,lua里面的非成員函數(shù).調(diào)用,他不是靜態(tài)的.
tb對(duì)象有一個(gè)print function成員,當(dāng)tb是nil的時(shí)候,你不能調(diào)用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
相關(guān)文章
Lua中的__index和__newindex實(shí)例
這篇文章主要介紹了Lua中的__index和__newindex實(shí)例,本文講解了具有默認(rèn)值的table、記錄table的訪問、只讀的table等內(nèi)容,需要的朋友可以參考下2014-09-09
舉例講解Lua中的Table數(shù)據(jù)結(jié)構(gòu)
這篇文章主要介紹了舉例講解Lua中的Table數(shù)據(jù)結(jié)構(gòu),說明都融入到了注釋中,需要的朋友可以參考下2015-07-07
openresty中使用lua-nginx創(chuàng)建socket實(shí)例
Ruby元編程技術(shù)詳解(Ruby Metaprogramming techniques)
linux系統(tǒng)安裝Nginx Lua環(huán)境

