gpt4 book ai didi

Lua reference function from inside table inside the table (Using "self"inside of table)

转载 作者:行者123 更新时间:2023-12-04 14:13:36 29 4
gpt4 key购买 nike

假设我有一个表 A 和其中的函数 C 和 B,我可以通过引用自身来调用函数 C 中的表 A 函数 B 吗?

A = {
B = function()
print("I am B")
end,
C = function()
print("I am C\nand")
__self.B();
end,
}
A.C();

感谢您的宝贵时间。

最佳答案

是的,使用 : 方法调用。

A:C()

: 等同于 A.C(A),但它更安全(将确切的表引用作为第一个参数传递)。

由于您在表构造函数表达式中定义 A.C 方法,因此您不能使用此语法:

function table:prop

您必须声明 self 特征(在您的代码中用作 __self)作为函数的第一个参数。

A = {
B = function()
print("I am B")
end,

C = function(__self)
print("I am C\nand")
__self.B();
end
};

如果您不想将 __self 指定为第一个参数,请在分配 A 之后定义 A.C,使用以下特殊函数语法:

function A:C()
print("I am C\nand");
self.B();
end

这使得第一个参数成为self

关于Lua reference function from inside table inside the table (Using "self"inside of table),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40109340/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com