如何在Lua中引用无键表的第一个条目?
Lua数组表第一个元素的直接引用方法
问题原因
Lua中数组风格的表(无显式键的列表型表)默认从索引1开始分配键,而非其他语言常用的0。你尝试用foo.bar[0]访问第一个元素,自然会返回nil,因为这个索引在表中不存在。
直接引用方法
直接使用索引1即可访问bar的第一个条目,无需循环:
-- 直接获取第一个条目 local first_item = foo.bar[1] -- 打印验证 print("foo.bar[1]", "type", type(first_item), "value", first_item) -- 访问条目中的具体字段 print("baz的值:", first_item.baz) print("qux的值:", first_item.qux)
执行上述代码会输出:
foo.bar[1] type table value table: 000001DF39D19D20 baz的值: A sample string qux的值: 128
补充说明
你定义的bar是一个标准的Lua数组表:
bar = { { ['baz'] = "A sample string", ['qux'] = 128 }, }
这里面的子表没有指定键,Lua会自动为其分配从1开始的连续整数键,因此第一个子表的键是1,这是Lua数组的默认行为。
内容的提问来源于stack exchange,提问作者Jim Fell
相关产品推荐
相关产品推荐

