84 votes

Que fait Ruby Array # shift?

J'ai du mal à comprendre ce que les méthodes de décalage et de décalage de la classe Array font en Ruby. Est-ce que quelqu'un peut m'aider à comprendre ce qu'ils font?

94voto

Steve Weet Points 15395

Regarder la documentation de Ruby

Array.shift supprime le premier élément du tableau et le renvoie

 a = [1,2,3] 
puts a.shift
 => 1 
puts a
 => [2, 3] 
 

Unshift ajoute la valeur fournie au début du tableau, en déplaçant tous les autres éléments vers le haut.

 a=%w[b c d]
 => ["b", "c", "d"] 
a.unshift("a")
 => ["a", "b", "c", "d"] 
 

50voto

Alberto Santini Points 2887

shift et unshift des actes similaires pop et push: ils sont conçus pour utiliser des tableaux que des piles à laquelle vous pouvez ajouter et supprimer des éléments (généralement une fois par heure). La différence est juste que shift et unshift ajouter/supprimer des éléments au début d'un Array, en fait *maj*ing tous les autres éléments, tout en pop et push ajouter/supprimer des éléments à la fin de l' Array, donc en préservant les autres éléments des indices.

Exemples:

a = [2, 4, 8]
a.push(16, 32)   # a => [2, 4, 8, 16, 32]
a.unshift(0, 1)  # a => [0, 1, 2, 4, 8, 16, 32]
a.shift          # a => [1, 2, 4, 8, 16, 32]
a.pop            # a => [1, 2, 4, 8, 16]

8voto

mipadi Points 135410

Il saisit le premier élément, le supprime du tableau et renvoie l'élément supprimé. C'est en gros une façon de traiter un tableau comme une pile: shift est pop, unshift est push.

2voto

Tony D Points 43962

Si vous pouvez considérer le tableau comme une file d'attente de valeurs à traiter, vous pouvez alors prendre la valeur suivante (avant) et "décaler" l'autre valeur pour occuper l'espace mis à disposition. Unshift réintègre les valeurs. Peut-être n'êtes-vous pas prêt à en traiter certaines, ou laisserez-vous du code ultérieur les gérer.

1voto

Robert Grant Points 3457

Il retourne le premier élément du tableau et le supprime du tableau, en déplaçant les éléments d'une place.

Donc glissant [1,2,3,4,5]

renvoie 1 et définit le tableau sur [2,3,4,5] .

Plus ici .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X