有人能解释一下 Lua 中 ":" 和 "." 运算符的区别吗?

我来自Java,我真的无法理解为什么我看到在Java中我只会使用.的地方Lua中会使用:.

例如,我在Lua中看到了这个:

Person.doSomething() 然后我看到 Person:GetName()

而在Java中,我只会使用第一个选项来执行函数。 我这里是错过了一些基础知识吗?

点赞
用户582
用户582

调用 obj:Method(...)obj.Method(obj, ...) 完全相同,只是 obj 只被计算一次。

同样地,声明 function obj:Method(...) 与声明 function obj.Method(self, ...) 相同。

基本上,必须在函数需要有 self 概念时使用 :

2013-03-21 20:01:17