南锋

南奔万里空,脱死锋镝余

Lua 点号与冒号的区别:self 参数、方法定义和调用方式

Lua 点号与冒号的核心区别

初学 Lua 时,容易对 .: 的用法产生疑问。冒号语法的核心是隐式声明并传递 self 参数。

冒号的作用:定义函数时,给函数添加隐藏的第一个参数self,调用函数时,默认把当前调用者作为第一个参数传递进去。
使用冒号后,就相当于我们使用了点号,只是我们不再需要显示的定义self参数以及主动低传递参数。

在Cocos2dx 开发过程中,大部分时候都是使用的冒号

方法定义与调用的等价写法

一般我们在定义函数时会用下面写法

1
function MainScene:onCreate()

等同于下面写法

1
function MainScene.onCreate(self)

笔者个人看法,欢迎大家更正

+