如何进行Lua表的最终迭代操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计266个文字,预计阅读时间需要2分钟。
要从末尾迭代一个简单的Lua表,你可以使用以下方法来实现`reversepairs`函数:
luafunction reversepairs(t) local keys={} for k in pairs(t) do table.insert(keys, k) end local i=#keys return function() if i > 0 then i=i - 1 return keys[i], t[keys[i]] end endend
local mytable={'a', 'b', 'c'}local reversed=reversepairs(mytable)
for i, value in reversed do print(i .. : .. value)end
这将输出:
3: c
2: b
1: a
如何从末尾迭代一个简单的Lua表,即 a sequence?想要的行为示例:
local mytable = {'a', 'b', 'c'} for i, value in reversedipairs(mytable) do print(i .. ": " .. value) end
应该输出
3: c 2: b 1: a
如何实现reverseipairs?
感谢@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
本文共计266个文字,预计阅读时间需要2分钟。
要从末尾迭代一个简单的Lua表,你可以使用以下方法来实现`reversepairs`函数:
luafunction reversepairs(t) local keys={} for k in pairs(t) do table.insert(keys, k) end local i=#keys return function() if i > 0 then i=i - 1 return keys[i], t[keys[i]] end endend
local mytable={'a', 'b', 'c'}local reversed=reversepairs(mytable)
for i, value in reversed do print(i .. : .. value)end
这将输出:
3: c
2: b
1: a
如何从末尾迭代一个简单的Lua表,即 a sequence?想要的行为示例:
local mytable = {'a', 'b', 'c'} for i, value in reversedipairs(mytable) do print(i .. ": " .. value) end
应该输出
3: c 2: b 1: a
如何实现reverseipairs?
感谢@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

