我對通過.和通過函數調用之間的區別感到困惑:> x = {foo = function(a,b) return a end, bar = function(a,b) return b end, }> return x.foo(3,4)3> return x.bar(3,4)4> return x:foo(3,4)table: 0x10a120> return x:bar(3,4)3在:做什么?
3 回答

慕田峪9158850
TA貢獻1794條經驗 獲得超7個贊
對于定義,它與手動指定self 完全相同 -甚至在編譯時會產生相同的字節碼。即function object:method(arg1, arg2)與相同function object.method(self, arg1, arg2)。
關于使用:是幾乎一樣的.-一種特殊的調用將在內部使用,以確保object的計算/接入和任何可能的副作用是只有一次計算。呼叫object:method(arg1, arg2)與相同object.method(object, arg1, arg2)。
添加回答
舉報
0/150
提交
取消