【发布时间】:2016-02-24 07:17:51
【问题描述】:
是否可以用同一个循环遍历多个 Lua 表?
为了遍历索引表,我可以这样做:
local t1 = {"a", "b", "c"}
local t2 = {"d", "e", "f"}
local num = #t1+#t2
for i=1, num, do
local j
local val
if i <= #t1 then
j = i
val = t1[j]
else
j = i-#t1
val = t2[j]
end
-- Do stuff
end
但是键值表呢?
例如像这样:
local t1 = {a="a", b="b", c="c"}
local t2 = {d="d", e="e", f="f"}
for key, val in pairs(t1) or pairs(t2) do
print(key..": '"..val.."'")
end
应该是这样的:
a: 'a'
b: 'b'
c: 'c'
d: 'd'
e: 'e'
f: 'f'
【问题讨论】:
-
注意:尽管您没有明确表示您期望这样做,但您应该知道键值对以不确定的顺序枚举。 (哦,所有表都是键值表;只是您选择的构造函数语法不同。)
-
是的,感谢您指出。在我的情况下,顺序并不重要,我只想获取两个表的所有对。