如何从末尾迭代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
如何从末尾迭代一个简单的 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