Ruby – 每个起始偏移量

如何为ruby中的each循环设置起始偏移量? 我希望循环从a[3]而不是a[0] 。 我该怎么设置?

 a = [ab, cd, ef, gh, hi, jk] a.each do |i| #some stuff end 

另一个可能更直接和可读的可能性是使用Array#drop

 a.drop(3).each do |i| # do something with item i end 

现在,如果与从Enumerableinheritance的其他方法结合使用,这真的很有Enumerable ,所以有可能在each循环中有更好的替代方法。 假设您要过滤提取的切片并在之后对其进行转换:

 a = [0,1,2,3,4,5,6,7] a.drop(3).select(&:even?).map { |x| x * 2 } # => [8, 12] 

或者说您要打印所有值的列表:

 a = ["1", "2", "3", "4", "5"] puts a.drop(3).join("\n") 

输出:

 4 5 

inheritance自函数式编程的这些特性使得Ruby非常强大:)

在数组的子部分上使用each 。 在下面的示例中,从第四个元素到结尾:

 a[3..-1].each do |i| #some stuff end 

这对你有所帮助

 a[3..-1].each do |i| #your logic end 

大多数Rubyist都忘记了旧的for循环:

 n = 3 for i in n...a.size puts a[i] end