.
Je suis en train d'inverser Enumerable (comme Array) sans utiliser J'espérais, ce code suivant suffit: p> inverse code>, mais en utilisant
reverse_each code> iterator
[1,2,3].reverse_each {|v| p v }
3 Réponses :
de 1.8.7, Donc, si vous souhaitez collecter des articles, utilisez < Code> Enumérable # map code> sur cet énumérateur: p> énumérable # chacun _ * code> méthodes Renvoie un énumérateur lorsque aucun bloc n'est fourni, les méthodes d'impératif à l'origine peuvent maintenant être utilisées dans des expressions pures.
Une autre méthode serait [1, 2, 3] .Reverse_each.to_a code> p>
(1..3) .Reverse_each {| V | p v} p>
produit: p>
1 2 3 P>
Il construit un tableau temporaire et traverse cette matrice dans l'ordre inverse, mais ne renvoie pas la copie inverse de la collection transformée p>
Si aucun bloc n'est donné, un énumérateur est renvoyé à la place. P>
mais Méthode de la carte de Ruby P>
retourne un nouveau tableau avec les résultats du bloc d'exécution une fois pour chaque élément de Enum. P>
p [1,2,3] .Reverse_each.map {| V | v} p>
inverse_each - agira comme un itérateur p>
carte - formera un nouvel ensemble de collection P>