LUA的数组迭代器实现

由于LUA中有 闭包 这个概念, 嵌套函数可以访问外围函数的变量(非局部变量);

LUA中的数组迭代器于是可以这样实现:

 

local array = { "one", "two", "three"} function ipair( tbl ) local i = 0 return function() i = i + 1 if i > #tbl then return end return i, tbl[i] end end local iter = ipair(array) while true do local idx, value = iter() if idx == nil then break end print( idx, value ) end

你可能感兴趣的:(LUA)