lua语法求解释

新人小白,刚刚开始看quick,前几天把lua语法简单看了一遍,就开始接触quick了,发现里面有很多东西都不认识。请大神详细讲解,谢谢啦~

1、关于冒号“:”的疑问
我看冒号大概的作用是取用表里的函数,在quick相当于调用类中定义的成员函数,即冒号前面是类的名字,冒号后是成员函数。但是连续使用多个冒号“:”是什么情况,我一下子就看不懂了。

例如:
function MyApp:run()
cc.FileUtils:getInstance():addSearchPath(“res/fruit”)
cc.Director:getInstance():setContentScaleFactor(640/CONFIG_SCREEN_WIDTH)
self:enterScene(“MainScene”)
end
这里面有好几个冒号连用,这都是类成员函数使用吗?

2、关于点“.”的使用
这个点好冒号类似,就是一个默认的有self,使用冒号默认的将第一个参数self省略掉,相当于语法糖,但是quick中有好几个点连用,我又一下子搞不清楚了。这前面的都是类吗?

例如:
local MyApp = class(“MyApp”, cc.mvc.AppBase) --MyApp.lua文件中,我看这好像是文件夹路径分隔符,lua中的点有这功能吗?

function MyApp:ctor()
MyApp.super.ctor(self)
end

上面的点连用,能不能讲解一下lua的语法规则,lua也是刚刚接触,还什么都不明白,希望大神能讲解的详细一点,或者告诉我去看什么书籍里的相关知识,我看有些lua教程中没有讲到连续使用点和冒号,我都不知道怎么理解了。

function MenuScene:ctor()
cc.ui.UIPushButton.new(startBtnImages, {scale9 = false})
:onButtonClicked(function(event)
local playScene = import(“app.scenes.PlayScene”):new() --import
display.replaceScene(playScene, “turnOffTiles”, 0.5)
end)
:align(display.CENTER, display.cx, display.cy - 80)
:addTo(self)
end

冒号的例子还有很多,例如MainScene.lua文件中的这个。
我试过,把冒号分开另起一行也是可以的,写在一行也是可以的,那么这冒号前面应该是什么,是类吗?

lua手册,建议你仔细看下,网上一搜就搜到了,最基础的东西,就相当于问1+1=几的问题

冒号代表调用, lua 里面提供的方法, a.func(a) 和 a:func() 是一样的, 就是把调用者本身默认传为第一个参数(隐藏参数), 前面调用的应该是对象, 你可以仔细想想。

1赞

lua 里面每个函数都有返回值(如果你不写, 默认返回nil), 连续调用的前提是前面的那个函数返回的是self(调用者自己) 或者返回的对象有后面这个类方法。 注意连续调用, 你必须清楚是谁在掉用后面的方法的

1赞

哦,谢谢啦,我稍微有点明白了,就是每次调用都返回的东西还能继续调用,我再理解一下。

1赞