如何根据for
的第一个和最后一个数字循环生成一个整数序列?Lua - 生成数字序列
以下伪
for i in sequence(4,9) do
print(i)
end
应该产生以下输出
4
5
6
7
8
9
请包括一个简短的说明的解决方案确实在后台什么,什么术语将允许一个办法来解决问题。
搜索尝试导致无法测量的巨大页面的文档。
如何根据for
的第一个和最后一个数字循环生成一个整数序列?Lua - 生成数字序列
以下伪
for i in sequence(4,9) do
print(i)
end
应该产生以下输出
4
5
6
7
8
9
请包括一个简短的说明的解决方案确实在后台什么,什么术语将允许一个办法来解决问题。
搜索尝试导致无法测量的巨大页面的文档。
您可以使用numeric for loop来做到这一点。您可以在我参考的Lua部分或Lua手册中找到有关For statement的详细信息。
只是完整的记录,基本上有3种方法可以完成这个循环,一个语法略有不同,另外两个语法和伪代码一样。链接指向Programming in Lua(这是一本很棒的书,顺便说一下)中的相关章节。
1)使用一个简单的numeric for loop - 在这种情况下,你不会使用sequence
:
for i=4,9 do
print(i)
end
2)实施sequence
作为closure:
function sequence(from,to)
local i = from - 1
return function()
if i < to then
i = i + 1
return i
end
end
end
for i in sequence(4,9) do print(i) end
3)实施sequence
为coroutine :
function sequence(from, to)
return coroutine.wrap(function()
for i=from,to do
coroutine.yield(i)
end
end)
end
for i in sequence(4,9) do print(i) end
''功能序列(从,到,IND) 本地IND = IND或1 本地I =从 - IND 到=到+ IND 回报函数() I = I + IND 返回I <和我或无 结束 结束 – warspyking
只是一个简化和添加更多功能的建议:) – warspyking
我发现i = 4, 9是解决方案感谢http://stackoverflow.com/questions/12020574/lua-for-variable-in-range,但我会要求解释这是干什么以及它叫什么。 “,”是不可测量的。类似于试图在Pythons文档中找到“in”。 :) – qubodup
它被称为循环?! – hjpotter92
https://devdocs.io/lua~5.3/index#3.3.5 – hjpotter92