2014-01-11 3 views
0

Есть ли лучший/более чистый способ создания счетчика Ruby (т. Е. Для цикла for), который начинается со смещения? Способ, который включает только количество раз и смещение один раз.Ruby integer enumerator со смещением

Например, перебирать в 10 раз, начиная с 100:

> 100.upto(100 + 10) 
#<Enumerator: 100:upto(110)> 

Или

> 10.times.collect{|i| 100 + i}.each 
#<Enumerator: [100, 101, 102, 103, 104, 105, 106, 107, 108, 109]:each> 

Нечто подобное было бы неплохо:

100.next(10) 

ответ

3

Может быть, это может работать:

(1..10).each.with_index(100) do |elem, i| puts "#{i}: #{elem}" end 


100: 1 
101: 2 
102: 3 
103: 4 
104: 5 
105: 6 
106: 7 
107: 8 
108: 9 
109: 10 
0
(100..110).each 

или более общий

(start..start+offset).each 
0

Как насчет диапазона:

[6] pry(main)> offset = 10 
=> 10 
[7] pry(main)> (100..(100 + offset)).collect { |i| i } 

=> [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110] 
[8] pry(main)> (100..(100 + offset)).collect { |i| i } 
Смежные вопросы