迭代lua表不起作用
Posted
技术标签:
【中文标题】迭代lua表不起作用【英文标题】:iterate over lua table is not working 【发布时间】:2012-05-27 12:47:30 【问题描述】:我有以下 lua 表:
t = name="sandy", age="22", major="computerScience"
我想对其进行迭代,以下两种方法都不起作用
方法一
function printAssociateTable(t) print("循环前") for i,v 在 ipairs(t) 中做 print(v) 结束结束
方法二
function printAssociateTable2(t) print("循环前") for k in ipairs(t) 做 print("循环前") print(k.." is "..t.k) end end
当我调用任何一种方法时,它们都会打印“循环前”。所以问题是程序没有进入循环!
如果我这样做,我尝试手动访问该表:
返回 t.name => 给桑迪
返回 t[名称] => 给出 nil
返回 t["name"] => 给桑迪!
如何迭代我的表?请注意,这两种方法都适用于像这样的简单数组
a="a","b","c","d"
但我希望它在我的关联数组上工作
【问题讨论】:
【参考方案1】:ipairs
迭代器仅选择具有 integer 键的数组元素。要遍历您需要 pairs
的所有键,如下所示:
function printAssociateTable(t)
print("before the loop")
for i,v in pairs(t) do
print(v)
end
end
【讨论】:
以上是关于迭代lua表不起作用的主要内容,如果未能解决你的问题,请参考以下文章