如何根據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