(Lua 笔记):迭代器函数

目录

迭代器函数

自定义迭代器函数


迭代器函数

  • pairs迭代table,遍历表中所有的key跟value
  • ipars按照索引从1开始,递增遍历,遇到nil值就停止
  • 案例1:
array = {"Lua","C#","Java"}

for k,v in pairs(array) do
	print(k,v)
end

输出:
1	Lua
2	C#
3	Java
  • 案例2:
array = {"Lua","C#","Java"}

array[2]=nil

for k,v in ipairs(array) do
	print(k,v)
end

输出:
1	Lua

自定义迭代器函数

  • 迭代器函数格式:
for 变量列表 in 迭代函数,状态变量,控制变量  do
	--循环体
end
  • 1,调用迭代函数(把状态变量和控制变量当做参数传递给迭代函数)  状态变量只会在第一次调用的时候赋值
  • 2,如果迭代函数的返回值为nil,退出for循环
    • 如果不是nil的话,把返回值赋值给变量列表,并执行循环体
  • 案例:
function square(state,control)
	if(control>=state) then
		return nil
	else
		control=control+1
		return control,control*control
	end
end

for i,j in square,4,0 do
	print(i,j)
end

输出:
1	1
2	4
3	9
4	16

猜你喜欢

转载自blog.csdn.net/baidu_41388533/article/details/108493550