如何迭代一个简单的Lua表格,它是一个序列,并从结尾开始迭代?
所需行为示例:
local mytable = {'a', 'b', 'c'}
for i, value in reversedipairs(mytable) do
print(i .. ": " .. value)
end
应该输出
3: c
2: b
1: a
如何实现reversedipairs
?
如何迭代一个简单的Lua表格,它是一个序列,并从结尾开始迭代?
所需行为示例:
local mytable = {'a', 'b', 'c'}
for i, value in reversedipairs(mytable) do
print(i .. ": " .. value)
end
应该输出
3: c
2: b
1: a
如何实现reversedipairs
?
感谢@Piglet提供有用的链接。
local function reversedipairsiter(t, i)
i = i - 1
if i ~= 0 then
return i, t[i]
end
end
function reversedipairs(t)
return reversedipairsiter, t, #t + 1
end
实际上,我发现一种更简单的方法可能是
local mytable = {'a', 'b', 'c'}
for i = #mytable, 1, -1 do
value = mytable[i]
print(i .. ": " .. value)
end
除此之外,您还可以使用带有反向索引的标准 for 语句:
for i=1, #mytable do
print(mytable[#mytable + 1 - i])
end