Looking for ruby Keywords? Try Ask4Keywords

Ruby Language 迭代與索引


有時,您希望在迭代枚舉器時知道當前元素的位置( 索引 )。為此,Ruby提供了with_index方法。它可以應用於所有枚舉器。基本上,通過在枚舉中添加with_index ,可以枚舉該枚舉。索引作為第二個參數傳遞給塊。

[2,3,4].map.with_index { |e, i| puts "Element of array number #{i} => #{e}" }
#Element of array number 0 => 2
#Element of array number 1 => 3
#Element of array number 2 => 4
#=> [nil, nil, nil]

with_index有一個可選參數 - 第一個索引,默認為0

[2,3,4].map.with_index(1) { |e, i| puts "Element of array number #{i} => #{e}" }
#Element of array number 1 => 2
#Element of array number 2 => 3
#Element of array number 3 => 4
#=> [nil, nil, nil]

有一個特定的方法each_with_index 。它與each.with_index之間的唯一區別是你不能將參數傳遞給它,所以第一個索引始終為0

[2,3,4].each_with_index { |e, i| puts "Element of array number #{i} => #{e}" }
#Element of array number 0 => 2
#Element of array number 1 => 3
#Element of array number 2 => 4
#=> [2, 3, 4]