Lua表不可访问(尝试索引nil值)

时间:2018-07-17 23:36:44

标签: lua

我有一个看起来像这样的表:

{
  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

1 个答案:

答案 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

Live on Wandbox

这可以按预期工作,因为表是引用类型。