Lua中有像xrange这样的函数吗?

时间:2015-09-29 14:31:44

标签: lua xrange

在Lua中是否有像xrange(Python)这样的函数,所以我可以这样做:

for i in xrange(10) do
    print(i)
end

与其他问题不同,因为他正在寻找条件测试员,但我并不是在寻找条件测试员。

2 个答案:

答案 0 :(得分:2)

如果你想迭代数字:

for i = 0,9 do
    print(i)
end

另一方面,你可以制作自己的迭代器:

function range(from, to, step)
  step = step or 1
  return function(_, last)
    local next = last + step
    if step > 0 and next < to or step < 0 and next > to or step == 0 then
      return next
    end
  end, nil, from - step
end

并使用它:for i in range(0, 10) do print(i) end

您还可以看到http://lua-users.org/wiki/RangeIterator

答案 1 :(得分:0)

function xrange(a,b,step)
  step = step or 1
  if b == nil then a, b = 1, a end
  if step == 0 then error('ValueError: xrange() arg 3 must not be zero') end
  if a + step < a then return function() end end
  a = a - step
  return function()
           a = a + step
           if a <= b then return a end
         end
end