如何反向迭代 Lua 表?

如何反向迭代一个简单的 Lua 表?(即一个 序列

期望的行为例子:

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

应该输出:

3: c
2: b
1: a

如何实现 reversedipairs

点赞
用户4846656
用户4846656

谢谢 @Piglet 提供有用的链接。

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
2016-12-27 18:08:42
用户3618581
用户3618581

你也可以使用标准的 for 语句,反向索引:

for i=1,#mytable do
   print(mytable [#mytable + 1-i])
end
2020-01-10 16:26:09