首页 > 代码库 > Lua 关于"."与":"号的用法区别
Lua 关于"."与":"号的用法区别
"."的用法:
TSprite = { x = 0, y = 0, } function TSprite.setPosition(m, x ,y) m.x = x; m.y = y end local who = TSprite
TSprite = nil who.setPosition(who, 1, 2) print(who.x, who.y)
--输出:1 2
":"的用法
TSprite = { x = 0, y = 0, } function TSprite:setPosition(x ,y) --不同 self.x = x; self.y = y end local who = TSprite
TSprite = nil who:setPosition(1, 2) --只有这不同 print(who.x, who.y)
--输出:1 2
看出差别了吗?没错,就是少了个调用者参数
who.setPosition(who, 1, 2)
who:setPosition(1, 2)
用“:”相当于自动输入调用者这个参数,既:前面table。 ---self是lua中隐藏的默认参数——调用者
而“:”这种用法多数用在,lua的“类”的用法中,因为用了“:”之后,你就可以把TSprite看成一个类了,而setPosition()就是TSprite的成员方法了,只是他需要在类的外部定义而已。
Lua 关于"."与":"号的用法区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。