如何深入探究最终迭代Lua表的每一个细节?
- 内容介绍
- 文章标签
- 相关推荐
本文共计258个文字,预计阅读时间需要2分钟。
要从一个简单的Lua表中逆序迭代,你可以创建一个自定义的`reverseipairs`函数。以下是一个简单的实现:
luafunction reverseipairs(t) local i=0 local iter=function() i=i - 1 return i >=1, t[i] end return iterend
-- 使用示例local mytable={'a', 'b', 'c'}for i, value in reverseipairs(mytable) 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
本文共计258个文字,预计阅读时间需要2分钟。
要从一个简单的Lua表中逆序迭代,你可以创建一个自定义的`reverseipairs`函数。以下是一个简单的实现:
luafunction reverseipairs(t) local i=0 local iter=function() i=i - 1 return i >=1, t[i] end return iterend
-- 使用示例local mytable={'a', 'b', 'c'}for i, value in reverseipairs(mytable) 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

