self是什么以及它在lua中的作用是什么?

gui*_*233 9 lua self

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

Pig*_*let 18

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

function tbl:func(a) end
Run Code Online (Sandbox Code Playgroud)

是语法糖

function tbl.func(self, a) end
Run Code Online (Sandbox Code Playgroud)

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

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

tbl:func(a)
Run Code Online (Sandbox Code Playgroud)

这是语法糖

tbl.func(tbl, a)
Run Code Online (Sandbox Code Playgroud)

那种方式self通常指的是表。当您在 Lua 中进行 OOP 并需要从方法内部引用对象时,这很有帮助。

this与C++ 中类似。