使用键值对的for in循环

我试图通过循环遍历键值对:

a = {1, 2, 7, val4="val 4", val5="val 5", 9, "ten"}

print (a['val4'])
print (a[2])

print ("--- for in loop ---")
for k ,v in ipairs(a) do
  print (k,v)
end

输出:

val 4
2
--- for in loop ---
1   1
2   2
3   7
4   9
5   ten

有人可以告诉我为什么没有检索到 val4 和 val5,我该怎么做才能获得它们

这里是在 rpl.it 上的测试:http://repl.it/Wzw/2

点赞
用户1009479
用户1009479

ipairs 用于序列,它仅遍历整数键 12 等。但是,你的表有非整数键,例如 "val4""val5"。请改用 pairs

for k ,v in pairs(a) do
  print (k,v)
end
2014-08-17 08:39:26