我有一个看起来像这样的表:
{
block_0 = {
hash = "98d1a61c4e3d6394b2970a2a5c44ec2caf172ad5c6844b114867b31fa528220e",
index = 0
}
}
我不能说index
来访问hash
的{{1}}和block_0
值吗?它不起作用。使用此行时,出现错误chain["block_0"]["hash"]
。如何正确访问attempt to index a nil value (field 'block_0')
和hash
?
编辑:这是更多上下文:
index
答案 0 :(得分:2)
您正在将add_thing
的返回值插入chain
中。因此,链现在是一个表表。要为正确的字段编制索引,您必须首先为chain
编制索引,即chain[1]["block_0"]["hash"]
。我怀疑这不是预期的行为,您想执行以下操作
local function add_thing(chain)
local block_name = "block_0"
chain[block_name] = {
hash = "this is a test hash",
index = 10
}
end
local chain = {}
add_thing(chain)
print(chain["block_0"]["hash"]) -- this is a test hash
这可以按预期工作,因为表是引用类型。