使用 ipairs 迭代器
ipairs 迭代器用于按照数组索引遍历数组或类似数组的表。
-- 使用 ipairs 迭代器遍历数组
local myArray = {10, 20, 30, 40, 50}
for index, value in ipairs(myArray) do
print(index, value)
end
使用 pairs 迭代器
pairs 迭代器用于按照键值对遍历表,包括数组和非数组部分。
-- 使用 pairs 迭代器遍历表
local myTable = {name = "Alice", age = 25, city = "Wonderland"}
for key, value in pairs(myTable) do
print(key, value)
end
自定义迭代器
你也可以自定义迭代器,通过一个函数返回下一个元素的值,以及一个状态,来实现更复杂的迭代逻辑。
-- 自定义迭代器
function customIterator(collection)
local index = 0
local size = #collection
return function()
index = index + 1
if index <= size then
return collection[index]
end
end
end
-- 使用自定义迭代器遍历数组
local myArray = {100, 200, 300, 400, 500}
local iter = customIterator(myArray)
while true do
local value = iter()
if not value then
break
end
print(value)
end
这是一个简单的自定义迭代器的例子。迭代器函数返回一个闭包,用于维护迭代状态,并在每次调用时返回下一个元素的值。
总体而言,迭代器是 Lua 中用于遍历集合的强大机制,可以根据需要选择合适的迭代器进行遍历。
转载请注明出处:http://www.zyzy.cn/article/detail/13701/Lua