如何从末尾迭代Lua table?

How to iterate Lua table from end?

如何从末尾迭代一个简单的 Lua table,即 a sequence

想要的行为示例:

local mytable = {'a', 'b', 'c'}
for i, value in reversedipairs(mytable) do
    print(i .. ": " .. value)
end

应该输出

3: c
2: b
1: a

这里如何实现reversedipairs?

谢谢@Piglet,有用link。

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