&引用;“对象”;Lua中的母函数

&引用;“对象”;Lua中的母函数,lua,meta-method,Lua,Meta Method,我使用它在Lua中生成“类” 在zeroBane Studio中启动此代码,我可以执行以下操作 Test1 = Class(); function Test1:_init() end Test2 = Class(Test1); function Test2:_init() Test1._init(self); end 但是当我尝试在Starbound中做类似的事情时,它会抱怨Test1;带有消息“尝试索引函数值”。我敢打赌这与元表有关,但我自己解决不了。 有没有办法解决这个问题,这样我

我使用它在Lua中生成“类”

在zeroBane Studio中启动此代码,我可以执行以下操作

Test1 = Class();
function Test1:_init()
end

Test2 = Class(Test1);

function Test2:_init()
  Test1._init(self);
end
但是当我尝试在Starbound中做类似的事情时,它会抱怨Test1;带有消息“尝试索引函数值”。我敢打赌这与元表有关,但我自己解决不了。
有没有办法解决这个问题,这样我就可以使用“.”调用函数了?

localbase={arg}
替换为
localbase={…}
这很有趣,因为如果我这样做的话,它会抱怨第五行--“对于k,成对的v(base)do”,以及这个消息“[11:15:17.282][Error]为脚本“('/Objects/Rack/digitalstorage_Rack.lua')”创建lua上下文时出现异常:(LuaException)错误代码2,[string”/Objects/Rack/digitalstorage_Rack.lua']:1:(LuaException)错误代码2,[string”/Classes/Class.lua']:5:错误参数#1到“pairs”(需要表,得到函数)
类型(Test1)的值是什么
紧跟在
Test1=Class()之后
Drive=Class();本地t=类型(驱动);函数驱动器:_init()LogDebug(类型(驱动器));LogDebug(t);结束
这是从我的代码中稍微修改的复制粘贴,两人都说他们的驱动器是表。LogDebug只是打印了我在starbound中使用的更多功能。可能,您的“驱动器”类被一个同名函数隐藏了?
Test1 = Class();
function Test1:_init()
end

Test2 = Class(Test1);

function Test2:_init()
  Test1._init(self);
end