亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

之間的區別。和:在Lua

之間的區別。和:在Lua

一只名叫tom的貓 2019-12-11 12:09:16
我對通過.和通過函數調用之間的區別感到困惑:> 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 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

冒號用于實現self作為第一個參數傳遞的方法。因此x:bar(3,4)應與相同x.bar(x,3,4)。

查看完整回答
反對 回復 2019-12-12
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

對于定義,它與手動指定self 完全相同 -甚至在編譯時會產生相同的字節碼。即function object:method(arg1, arg2)與相同function object.method(self, arg1, arg2)。


關于使用:是幾乎一樣的.-一種特殊的調用將在內部使用,以確保object的計算/接入和任何可能的副作用是只有一次計算。呼叫object:method(arg1, arg2)與相同object.method(object, arg1, arg2)。



查看完整回答
反對 回復 2019-12-12
  • 3 回答
  • 0 關注
  • 283 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號