Lua中的self是什么,它有什么作用?

7

我是一个新手lua程序员,还有很多东西我可能不知道。我在谷歌上搜索了一下self在lua中的含义,但仍然不理解。如果有人能给我提供最简单的解释,说明在lua中"self"是用来做什么的,那将非常有帮助。


4
请参阅 https://www.lua.org/pil/16.html。 - lhf
1个回答

15

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

function tbl:func(a) end

是语法糖,用于

function tbl.func(self, a) end

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

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

tbl:func(a)

这是语法糖,用于

tbl.func(tbl, a)

这样self通常是指表格。当您在Lua中进行面向对象编程并需要从方法内部引用对象时,这非常有帮助。

类似于C++中的this


很棒的回答。我建议OP实际编写一些简单的表格和函数,例如sample,并查看它们的工作原理。 - Jason Goemaat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接