2015-09-29 2 views
1

Есть функция функции как xrange (в Python) в Lua, так что я могу сделать что-то вроде этого:Есть ли функция, подобная xrange в Lua?

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

Она отличается от того другого вопроса, потому что он ищет состояние тестер, но я «Я не ищу тестера условий.

+1

Возможный дубликат [Lua For Variable In Range] (http://stackoverflow.com/questions/12020574/lua-for-variable-in-range) – scrappedcola

+0

@scrappedcola Нет, это отличается от этого другого вопроса, потому что он ищет для тестера условий, но я не ищу тест состояния. – wb9688

+1

ответ дает возможность получить диапазон чисел. Если вы действительно не уверены, что в lua будет встроенная функция, которая динамически сохраняет список, а не создает статический список, тогда 'for var = 2,20 do' является ответом на ваш вопрос. Вам нужно указать, какие функции xrange вы ищете – scrappedcola

ответ

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

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 
Смежные вопросы