lua表中,乙個點,句號(.)用來定義和取得乙個「變數」。這個變數可能是個函式。
lua表中,兩個點,冒號(:)用來定義和呼叫乙個「函式」。會自動傳入這個「呼叫者」表的自身(self)。使用冒號時,函式(table:function)是不能作為函式引數,或被單獨列印的。
---[[
function needregistorrunsamplefunction(acallbackfunction)
acallbackfunction()
endlocal table1 =
function table1:function1(param1)
print("table1:function1() run: ", self, ", self.data1: ", self.data1, ", param1:", param1)
endtable1.callbackfunction1 = function()
return table1.function1(table1, "table . sample")
endtable1.callbackfunction2 = function()
return table1:function1("table : sample")
end--sample normal
needregistorrunsamplefunction(function()
print("sample normal")
end)
--table . sample
needregistorrunsamplefunction(table1.callbackfunction1)
--table . sample
needregistorrunsamplefunction(table1.callbackfunction2)
--]]
--[[
output:
sample normal
table1:function1() run: table: 02a940d8 , self.data1: 10 , param1: table . sample
table1:function1() run: table: 02a940d8 , self.data1: 10 , param1: table : sample
--]]
參考:
《lua的點和冒號的區別》
Lua 點呼叫和冒號呼叫的區別
object.func name object.func name arg1,arg2.object func name object func name self,arg1,arg2.點定義函式 需要顯示傳遞或接收self 冒號定義函式 可以省略self引數 冒號的作用 定義時,給函式新增隱藏的第...
LUA中的冒號 點和self
在lua程式設計中,經常會看到有時用點號定義乙個table的成員函式,有時卻用冒號,在呼叫的時候也是如此。那麼點號和冒號在使用上有什麼區別呢?它們與self之間又是什麼樣的關係呢?稍安勿躁,接下來謎底將一一為你揭開。下面先看乙個例子 class class.index class function ...
LUA中的冒號 點和self
在lua程式設計中,經常會看到有時用點號定義乙個table的成員函式,有時卻用冒號,在呼叫的時候也是如此。那麼點號和冒號在使用上有什麼區別呢?它們與self之間又是什麼樣的關係呢?稍安勿躁,接下來謎底將一一為你揭開。下面先看乙個例子 class class.index class function ...