带偏移量的Ruby整数枚举器

时间:2014-01-11 01:35:43

标签: ruby ruby-2.0

是否有更好/更清晰的方法来创建以偏移量开头的Ruby枚举器(即for循环)?一种只涉及次数和偏移一次的方式。

例如,从100开始迭代10次:

> 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 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

(100..110).each

或更通用的

(start..start+offset).each

答案 2 :(得分: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 }