self 是什么,它在 lua 中有什么作用?

What is self and what does it do in lua?

我是 lua 的一名新程序员,有很多事情我可能仍然不知道。我用谷歌搜索了 lua 中的 self 是什么,但我还是不明白。如果有人能给我最简单的解释 lua 中“self”的作用,那将非常有帮助。

self 只是一个变量名。如果您使用特殊语法,它通常由 Lua 自动定义。

function tbl:func(a) end

的语法糖
function tbl.func(self, a) end

这意味着 Lua 将自动创建一个名为 self 的第一个参数。

这与一个特殊的函数调用一起使用:

tbl:func(a)

这是

的语法糖
tbl.func(tbl, a)

这样self通常指的是table。当您在 Lua 中执行 OOP 并且需要从您的方法内部引用对象时,这很有用。

类似于 C++ 中的 this