如何从末尾迭代Lua表?

如何从末尾迭代Lua表?,lua,iterator,reverse,lua-table,Lua,Iterator,Reverse,Lua Table,我如何迭代一个简单的Lua表,也就是从末尾开始迭代 通缉行为示例: local mytable = {'a', 'b', 'c'} for i, value in reversedipairs(mytable) do print(i .. ": " .. value) end 应该输出 3: c 2: b 1: a 如何在这里实现反向配对?谢谢@piege提供有用的链接 local function reversedipairsiter(t, i) i =

我如何迭代一个简单的Lua表,也就是从末尾开始迭代

通缉行为示例:

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

3: c
2: b
1: a

如何在这里实现反向配对?

谢谢@piege提供有用的链接

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

你自己编的很好,Idk为什么soneone没有写出来解释呢。这是一项相当简单的任务。当它允许您时,请确保将其标记为正确:)您的迭代比这更一般。也就是说,它可以在桌子上工作而不受太多限制。它只是在表的上半部分进行反向迭代。如果表没有序列,则行为未定义。@谢谢,我编辑了问题。我知道它必须有一个正式的名字,但我还没有在任何地方找到它。