Lua 关于"."与":"号的用法区别
2014-12-26 12:06
260 查看
"."的用法:
":"的用法
看出差别了吗?没错,就是少了个调用者参数
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的成员方法(更准确的说setPosition是一个构造方法),只是他需要在TSprite“类”的外部定义而已。
相关文章推荐
- 关于JavaScript中apply与call的用法意义及区别(转)
- 关于abstract和virtual用法区别
- 关于js中"window(parent)(top).location.href"的用法
- 【转载】关于char * c="hello"与char c[]="hello"的区别
- 关于js中"window.location.href"、"location.href"、"parent.location.href"、"top.location.href"的用法
- MOSS 关于SPQuery 和SPSiteDataQuery的区别好用法!
- 关于js中"window.location.href"、"location.href"、"parent.location.href"、"top.location.href"的用法
- 关于JavaScript中apply与call的用法意义及区别
- 关于char * c="hello"与char c[]="hello"的区别
- 关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
- MOSS 关于SPQuery 和SPSiteDataQuery的区别好用法!
- 关于 "%*d" 一类的用法总结
- 关于JavaScript中apply与call的用法意义及区别
- HTML、CSS里面关于 id、class、name 属性的区别和用法
- Eval( " ")和DataBinder.Eval(Container.DataItem, " ")的区别及用法
- 关于JavaScript中apply与call的用法意义及区别
- MOSS 关于SPQuery 和SPSiteDataQuery的区别好用法!
- 关于selectNodes与selectSingleNode的用法的区别
- 关于selectNodes与selectSingleNode的用法的区别
- 一些数据格式化-Eval( " ")和DataBinder.Eval(Container.DataItem, " ")的区别及用法