我想知道在卢阿该怎么做
Python:
for i in range(10)
print("Hello World")发布于 2022-08-14 19:33:56
Lua有一个特殊的“数字for”循环。有两种形式:
for i = from, to do ... end等同于Python中的for i in range(from, to + 1),因为Python有一个独占的结束索引,并且
for i = from, to, increment do ... end相当于Python中的for i in range(from, to + increment, increment)。
Python循环允许省略from参数,只提供(独占) to参数,如您的示例所示:
for i in range(10):
print(i)这是而不是,相当于
for i = 1, 10 do print(i) end在Lua中,Python将从0开始,直到9,而Lua循环从1开始,一直到10。如果您不需要索引--并且只需要to多次迭代--或者索引应该是Lua表、字符串等的索引,那么应该使用从1到10的循环(两者都包括在内)。
与Python在Lua中的for i in range(to)的适当等效循环是
for i = 0, to - 1 do ... end最后,您可以实现自己的range迭代器。但是,由于函数调用开销,这将显示出更糟糕的性能。
function range(...)
local n_args = select("#", ...)
local increment = 1
if n_args == 1 then
from, to = 0, ...
elseif n_args == 2 then
from, to = ...
elseif n_args == 3 then
from, to, increment = ...
else error"range requires 1-3 arguments" end
local i = from
return function()
if i >= to then return end -- note: to is exclusive
local prev_i = i
i = i + increment
return prev_i
end
end用法就像Python的range
for i in range(stop) do ... end
for i in range(start, stop) do ... end
for i in range(start, stop, increment) do ... end发布于 2022-08-14 11:51:44
其内容应如下:
for i=1,10 do print(i) endLua循环遵循以下模式:
for init,max/min value, incrementhttps://stackoverflow.com/questions/73351382
复制相似问题