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)
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
------------------------------------
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
------------------------------------