是否可以使用功能来编辑另一个表内部的表的内容?
local MainTable = {
subtable = {
x = 0,
y = 0
},
addX = function()
subtable.x = subtable.x + 1
end
}
我正在尝试索引错误? (零值)有可能实现这一目标吗?它在桌子外面工作,我用过:
print(MainTable.subtable.x+1)
为什么它在桌子内不起作用?作为对象的表是否起作用?
谢谢!
Lua表不是对象;仅仅因为您在addX
中声明了MainTable
,所以它不知道MainTable
中的其他内容。
一种解决方案是:
local MainTable
MainTable = {
...
addX = function()
MainTable.subtable.x = MainTable.subtable.x + 1
end
}
但是更好的方法是
local MainTable = {
subtable = {
x = 0,
y = 0
}
}
function MainTable:addX()
self.subtable.x = self.subtable.x + 1
end
-- Use it as:
MainTable:addX()