点号与冒号操作符的区别
生活随笔
收集整理的這篇文章主要介紹了
点号与冒号操作符的区别
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
看下面示例代碼:
local str = "abcde" print("case 1:", str:sub(1, 2)) print("case 2:", str.sub(str, 1, 2))output:
case 1: ab case 2: ab冒號(hào)操作會(huì)帶入一個(gè)self參數(shù),用來(lái)代表自己。而點(diǎn)號(hào)操作,只是內(nèi)容的展開(kāi)。
在函數(shù)定義時(shí),使用冒號(hào)將默認(rèn)接收一個(gè)self參數(shù),而使用點(diǎn)號(hào)則需要顯式傳入self參數(shù)。
示例代碼:
obj={x=20} function obj:fun1()print(self.x) end等價(jià)于
obj={x=20} function obj.fun1(self)print(self.x) end參見(jiàn)?官方文檔?中的以下片段:“
The colon syntax is used for defining methods, that is, functions that have an implicit extra parameter self. Thus, the statement
t.a.b.c:f (params) bodyis syntactic sugar for
t.a.b.c.f = (self, params) body”
冒號(hào)的操作,只有當(dāng)變量是類(lèi)對(duì)象時(shí)才需要。有關(guān)如何使用Lua構(gòu)造類(lèi),大家可參考相關(guān)章節(jié)。
總結(jié)
以上是生活随笔為你收集整理的点号与冒号操作符的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: nginx_lua 学习网站
- 下一篇: 直播未来属于RTMP还是HTTP?