您的位置:首页 > 编程语言 > Lua

Lua学习(七)-----迭代器和泛型for

2015-04-02 15:44 417 查看
array={ "Lua","Tutorial"}

for key,value in ipairs(array)

do

print(key,value)

end

--[[上面的示例使用由Lua中提供的默认ipairs迭代函数。

]]

function square(iteratorMaxCount,currentNumber)

if currentNumber<iteratorMaxCount

then

currentNumber = currentNumber+1

return currentNumber, currentNumber*currentNumber

end

end

for i,n in square,3,0

do

print(i,n)

end

分析:参数3,0分别传给square函数中的两个参数

iteratorMaxCount=3,currentNumber=0

in 后面的表达式(square,3,0)返回两个参数给 i,n

因此可以重写自己的 ipairs()

function myipairs(a)

local num=#a

local i=0

if i<=num then i=i+1

return i,a[i]

end

end

--------------------------

function square(iteratorMaxCount,currentNumber)

if currentNumber<iteratorMaxCount

then

currentNumber = currentNumber+1

return currentNumber, currentNumber*currentNumber

end

end

function squares(iteratorMaxCount)

return square,iteratorMaxCount,0

end

for i,n in squares(3)

do

print(i,n)

end

------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: