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?
Réponses
Trop de publicités?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"]
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]
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.
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 .