在索引处的Lua表中插入其他数据
我有一个名为“inventory”的表,初始化如下:在索引处的Lua表中插入其他数据,lua,Lua,我有一个名为“inventory”的表,初始化如下: inventory = {} inventory[1] = { qty = 0 } 我想在索引1处向该表添加更多数据,例如: val = { id = "example" } inventory[1] = inventory[1], val 有没有一种方法可以在保存此索引表中已有的数据的同时做到这一点 最终结果应该是: inventory[1] = { qty = 0, id = "example" } 但如果我在尝试此代码后尝试打
inventory = {}
inventory[1] = { qty = 0 }
我想在索引1处向该表添加更多数据,例如:
val = { id = "example" }
inventory[1] = inventory[1], val
有没有一种方法可以在保存此索引表中已有的数据的同时做到这一点
最终结果应该是:
inventory[1] = { qty = 0, id = "example" }
但如果我在尝试此代码后尝试打印id,我会得到:
print(inventory[1].id) == Nil
或
或
first\u table
为inventory[1]
和second\u table
为val
FWIW,在表达式左侧需要两个变量才能使
inventory[1]=inventory[1],val
起作用:a,b=x,y
需要取表中的第一个键并使用它:
local inventory = {}
inventory[1] = { qty = 0 }
local val = { id = "example" }
--
local KeyName = next(val)
inventory[1][KeyName] = val[KeyName]
print(inventory[1][KeyName])
-- or
print(inventory[1].id)
谢谢你的回答!有没有一种方法可以做到这一点,而不必特别说明库存[1].id?val={id=“example”}中的数据实际上可能不是id,可能有多个具有不同名称的条目!这就是另一个答案的所在。该答案包含循环通过
val
表并应用键值对的代码,而不考虑键名。可能重复
inventory[1]["id"] = "example"
local inventory = {}
inventory[1] = { qty = 0 }
local val = { id = "example" }
--
local KeyName = next(val)
inventory[1][KeyName] = val[KeyName]
print(inventory[1][KeyName])
-- or
print(inventory[1].id)