是[函数类:我()结束]等于[函数class.me(自我)结束]在lua?

时间:2015-02-23 22:30:44

标签: lua operator-keyword colon

我很难理解lua中的冒号运算符。所以我做了一些关于冒号操作员的实验并得出了这个结论。

class = {}

function class:me()
end

等于

function class.me(self)
end

我做出了正确的结论吗?

如果没有,问题是什么?

1 个答案:

答案 0 :(得分:4)

你的结论是正确的。

:形式只是语法的糖。用self作为第一个参数。记录在案:

  

冒号语法用于定义方法,即函数   有一个隐含的额外参数self。因此,声明

 function t.a.b.c:f (params) body end
     

的语法糖
 t.a.b.c.f = function (self, params) body end