For loop 对于不同类型的循环
我想了解更多关于for循环的知识,据我所知有不同的类型 比如说,For loop 对于不同类型的循环,for-loop,lua,For Loop,Lua,我想了解更多关于for循环的知识,据我所知有不同的类型 比如说, for i = 1, 5 do print("hello") end ^我知道这一个,它将打印hello 5次,但下面还有其他类似的,我不理解,特别是索引位(这是否意味着它是数字1?),以及IPAIR的作用是什么 for index, 5 in ipairs(x) do print("hello") end 如果有其他类型的,请告诉我,我想学习所有类型,如果您能提供任何进一步的阅读,我将非常乐意查看它们是的,它
for i = 1, 5 do
print("hello")
end
^我知道这一个,它将打印hello 5次,但下面还有其他类似的,我不理解,特别是索引位(这是否意味着它是数字1?),以及IPAIR的作用是什么
for index, 5 in ipairs(x) do
print("hello")
end
如果有其他类型的,请告诉我,我想学习所有类型,如果您能提供任何进一步的阅读,我将非常乐意查看它们是的,它将打印hello 5次 根据上面的回答
ipairs
的功能与配对
完全相同,但有点扭曲
ipairs
遍历该表,直到它找到一个nil
值,或者一个不存在的值(如果有意义的话)。所以,如果你运行我为你展示的配对脚本,但只是用iPair替换配对,它会做完全相同的事情
正如您可以在Lua参考手册中看到的那样 for语句有两种形式:一种是数值形式,另一种是泛型形式 数值for循环在控件运行时重复一个代码块 变量通过算术级数运行。它有以下几点 语法: stat::=对于名称“=”exp“,”exp[”,“exp]do block end 例如:
for i = 1, 3 do
print(i)
end
local myTable = {"a", "b", "c"}
for i, v in ipairs(myTable) do
print(i, v)
end
将输出
1
2
3
你似乎对那个很熟悉。有关更多详细信息,请阅读参考手册一节
泛型for语句在称为迭代器的函数上工作。在…上
每次迭代,都会调用迭代器函数来生成新的
值,此新值为零时停止。泛型for循环具有
以下语法:
stat::=对于explist do block end namelist中的namelist::=Name{,'
名称}
例如:
for i = 1, 3 do
print(i)
end
local myTable = {"a", "b", "c"}
for i, v in ipairs(myTable) do
print(i, v)
end
将输出
1 a
2 b
3 c
ipairs是上述迭代器函数之一:
返回三个值(迭代器函数、表t和0),因此
那建筑
ipairs(t)do body end中i,v的将迭代键-值对(1,t[1]),(2,t[2]),…,
直到第一个nil
值
在此处阅读有关iPair和pairs的更多信息:
当然,您可以实现自己的迭代器函数
确保你也阅读了:
所有这些您都可以在几乎所有值得尊敬的Lua学习资源中找到。对于
变体,只有2个,而且你的问题中也有这两个。可能重复引用的地方是哪里?你应该引用你的消息来源。