lua表的點和冒號的區別

2021-09-11 11:52:46 字數 1220 閱讀 1886

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 ...