Lua语言中的"."和":"有什么不同?

functionMagicPanel:init()self._uiLayer=cc.Layer:create()--这里的CC怎么理解self:addChild(self... function MagicPanel:init()
self._uiLayer = cc.Layer:create() --这里的CC怎么理解
self:addChild(self._uiLayer,200)
self._widget2 = ccs.GUIReader:getInstance():widgetFromJsonFile("stuntBackUI.ExportJson") --ccs是什么
local backPanel = self._widget2:getChildByName("backPanel")
local outBtn = backPanel:getChildByName("button")
self._uiLayer:addChild(self._widget2,200)

初学Lua,问的问题很业余,行家别见怪。我就是对这些基础语法不是很清楚。一会儿是self后面跟”.“一会儿又是":",很糊涂,还望大神不吝赐教!
展开
 我来答
百度网友fe016f1
推荐于2017-11-29 · TA获得超过802个赞
知道小有建树答主
回答量:467
采纳率:77%
帮助的人:305万
展开全部
:是个语法糖,调用的函数会自动传递参数self

local a = {x = 0}

function a.foo(self, a)
self.x = a

end

function a:foo2(a)
self.x = a
end

--调用时:
a.foo(a, 2)
a.foo2(2)
上述两个操作是等价的,用:时就省去了定义和调用时需要额外添加self用来指代自身的麻烦

用cocos2d么,cc是cocos2d库的对象名称
追问
谢谢回答。我也看到有人说"."是用来访问对象的,":"是用来访问函数的,但是这种说发感觉不准确。

我对于lua的这些基本语法的写法不是很熟悉,不知道去哪里学习这些内容,您能否告知我从哪里可以学习像您上面讲到的这些内容,有没有相关资料或是视频。我会追加感谢的,谢谢你!
追答
官方读物,lua程序设计(pil),讲得还是很透彻的;这类解释语言最大的好处就是试验调试方便,可以一边看一边自己尝试
英语过关的可以去看一下lua user wiki,上面有不少对于语言的细节问题的阐述,也很值得一看

当然最好的办法还是自己多写多看

"."是用来访问对象的,":"是用来访问函数的
这个说法不算离谱,在用lua进行面向对象时比较常见的惯例也是的确如此,但单纯从语言层面来说依然是语法糖的实质不会变,因为lua原生的复合数据结构就只有表
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式