【问题标题】:Is there a function like xrange in Lua?Lua中有像xrange这样的功能吗?
【发布时间】:2015-12-27 02:18:05
【问题描述】:

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

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

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

【问题讨论】:

  • Lua For Variable In Range的可能重复
  • @scrappedcola 不,这与其他问题不同,因为他正在寻找条件测试器,但我不是在寻找条件测试器。
  • 答案提供了一种获取数字范围的方法。除非您真的认为 lua 中有一个内置函数可以动态存储列表,而不是创建静态列表,否则 for var=2,20 do 是您问题的答案。您需要指定要查找的 xrange 的哪些功能
  • function xrange(n) return string.gmatch(('.'):rep(n-1),'()') end

标签: lua xrange


【解决方案1】:
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

【讨论】:

    【解决方案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

    【讨论】:

      猜你喜欢
      • 2021-09-25
      • 2021-08-29
      • 1970-01-01
      • 1970-01-01
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      相关资源
      最近更新 更多