我是一个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++ 中类似。