metatable 的字段和方法在 setmetatable 之后的 table 上不可见
Fields and methods of metatable are not visible on table right after setmetatable
这是 Pico-8 lua。我有以下函数,它在标记的断言处失败。我不明白这是怎么发生的。我在其他两个场合使用过 setmetatable
并且它在那里工作。我在这里一无所知。
function particle:new(o)
setmetatable(o, self)
assert(self.spd, "works")
assert(getmetatable(o).spd, "works")
assert(o.spd, "this fails") -- < this assert fails, the ones above succeed
add(anims,o)
end
你好像忘记了
self.__index = self
没有这个 o.spd
将不会引用 particle.spd
,如果 o.spd
为 nil。
这是 Pico-8 lua。我有以下函数,它在标记的断言处失败。我不明白这是怎么发生的。我在其他两个场合使用过 setmetatable
并且它在那里工作。我在这里一无所知。
function particle:new(o)
setmetatable(o, self)
assert(self.spd, "works")
assert(getmetatable(o).spd, "works")
assert(o.spd, "this fails") -- < this assert fails, the ones above succeed
add(anims,o)
end
你好像忘记了
self.__index = self
没有这个 o.spd
将不会引用 particle.spd
,如果 o.spd
为 nil。