使用可维护内部的函数编辑可维护内部的表
Editing a subtable inside a maintable using a function inside the maintable
是否可以使用函数编辑另一个 table 中的 table 的内容?
local MainTable = {
subtable = {
x = 0,
y = 0
},
addX = function()
subtable.x = subtable.x + 1
end
}
我在尝试索引时遇到错误? (零值)
有可能实现这一目标吗?
它在 table 之外工作,我使用:
print(MainTable.subtable.x+1)
为什么在 table 中不起作用? table对象是否起作用?
谢谢!
Lua 表格不是对象;仅仅因为你在 MainTable
内声明 addX
,它不知道 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()
是否可以使用函数编辑另一个 table 中的 table 的内容?
local MainTable = {
subtable = {
x = 0,
y = 0
},
addX = function()
subtable.x = subtable.x + 1
end
}
我在尝试索引时遇到错误? (零值) 有可能实现这一目标吗? 它在 table 之外工作,我使用:
print(MainTable.subtable.x+1)
为什么在 table 中不起作用? table对象是否起作用?
谢谢!
Lua 表格不是对象;仅仅因为你在 MainTable
内声明 addX
,它不知道 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()