如何通过名称在 Lua 中引用 table 中的对象
How to reference an object in a table in Lua by its name
这似乎是一个非常简单的问题,但我一直无法找到答案。我将游戏对象添加到 Lua 中的 table,如下所示:
local lock = GameObject {
-- object values and methods
table.insert(objects, lock)
但是,尽管 google 搜索并通读了 Lua 文档,我仍然无法弄清楚如何通过名称引用这些对象。我认为这是因为有一个非常具体的语法可以这样做。如果有人可以帮助我,我将不胜感激。谢谢!
你可能想做这样的事情而不是 table.insert。对象仍将是 table.
objects = {}
objects.lock = {}
objects.lock2 = {}
如果你再执行
for key, value in pairs(objects) do
print(key,value)
end
你会得到输出
lock2 table: 0x1af3310
lock table: 0x1af3870
进一步说明
在你的问题中(不是上面的解决方案)锁只是给它的变量名,它不是索引的名称。
在这个代码片段中,可以看到被插入到对象中的项没有记录在 objects.
中的变量名 objects
正在存储一个 int 作为键,然后插入table 作为值。
objects = {}
local lock = {}
local lock2 = {}
-- object values and methods
table.insert(objects, lock)
table.insert(objects, lock2)
for key, value in pairs(objects) do
print(key,value)
print(type(value))
end
打印
1 table: 0x131b590
table
2 table: 0x131b540
table
这似乎是一个非常简单的问题,但我一直无法找到答案。我将游戏对象添加到 Lua 中的 table,如下所示:
local lock = GameObject {
-- object values and methods
table.insert(objects, lock)
但是,尽管 google 搜索并通读了 Lua 文档,我仍然无法弄清楚如何通过名称引用这些对象。我认为这是因为有一个非常具体的语法可以这样做。如果有人可以帮助我,我将不胜感激。谢谢!
你可能想做这样的事情而不是 table.insert。对象仍将是 table.
objects = {}
objects.lock = {}
objects.lock2 = {}
如果你再执行
for key, value in pairs(objects) do
print(key,value)
end
你会得到输出
lock2 table: 0x1af3310
lock table: 0x1af3870
进一步说明
在你的问题中(不是上面的解决方案)锁只是给它的变量名,它不是索引的名称。
在这个代码片段中,可以看到被插入到对象中的项没有记录在 objects.
中的变量名 objects
正在存储一个 int 作为键,然后插入table 作为值。
objects = {}
local lock = {}
local lock2 = {}
-- object values and methods
table.insert(objects, lock)
table.insert(objects, lock2)
for key, value in pairs(objects) do
print(key,value)
print(type(value))
end
打印
1 table: 0x131b590
table
2 table: 0x131b540
table