Que fait Ruby Array # shift?

J’ai du mal à comprendre ce que font les méthodes Shift et Unshift de la classe Array en Ruby. Quelqu’un peut-il m’aider à comprendre ce qu’il fait?

En regardant la documentation 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 à l’avant du tableau, déplaçant tous les autres éléments vers le haut

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

shift et unshift agissent de la même manière que pop et push : ils sont conçus pour utiliser des tableaux comme des stacks auxquelles vous pouvez append et supprimer des éléments (généralement un par heure). La différence réside simplement dans ce shift et dans le fait d’append / supprimer des éléments au début d’un Array , en déplaçant tous les autres éléments, tandis que pop et push les éléments add / remove à la fin du Array , préservant ainsi les index des autres éléments.

Exemples:

  # Spacing for clarity: a = [2, 4, 8] # 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] 

Il récupère le premier élément, le supprime du tableau et renvoie l’élément supprimé. C’est essentiellement un moyen de traiter un tableau comme une stack: shift est pop, unshift est un push.

Si vous pouvez considérer le tableau comme une queue de valeurs à traiter, vous pouvez alors prendre la valeur suivante (avant) et “déplacer” l’autre valeur pour occuper l’espace disponible. Unshift remet les valeurs en place – vous n’êtes peut-être pas prêt à traiter certaines d’entre elles, ou vous laisserez le code le gérer ultérieurement.

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

Tellement changeant [1,2,3,4,5]

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

Plus ici