Looking for ruby Keywords? Try Ask4Keywords

Ruby Language Iterazione con indice


Esempio

A volte si desidera conoscere la posizione ( indice ) dell'elemento corrente mentre si esegue l'iterazione su un enumeratore. A tale scopo, Ruby fornisce il metodo with_index . Può essere applicato a tutti gli enumeratori. Fondamentalmente, aggiungendo with_index a un'enumerazione, è possibile enumerare tale enumerazione. L'indice viene passato a un blocco come secondo argomento.

[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 ha un argomento opzionale - il primo indice che è 0 per impostazione predefinita:

[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]

Esiste un metodo specifico each_with_index . L'unica differenza tra esso e each.with_index è che non puoi passare un argomento a questo, quindi il primo indice è sempre 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]