J'ai du mal à comprendre ce que font les méthodes shift et unshift de la classe Array dans Ruby. Quelqu'un peut-il m'aider à comprendre ce qu'ils font?
push
il est en haut, et shift
il sort à l'autre extrémité.
J'ai du mal à comprendre ce que font les méthodes shift et unshift de la classe Array dans Ruby. Quelqu'un peut-il m'aider à comprendre ce qu'ils font?
push
il est en haut, et shift
il sort à l'autre extrémité.
Réponses:
Consulter 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 au début du tableau, en déplaçant tous les autres éléments d'un
a=%w[b c d]
=> ["b", "c", "d"]
a.unshift("a")
=> ["a", "b", "c", "d"]
shift
et unshift
agir comme une pile FILO, push
et shift
agirait comme une file d'attente FIFO, à moins que je ne sois confus à propos de quelque chose.
shift
et unshift
agit de la même manière que pop
et push
: ils sont destinés à utiliser des tableaux comme des piles auxquelles vous pouvez ajouter et supprimer des éléments (généralement un à la fois). La différence est juste que shift
et unshift
ajouter / éléments éliminer au début d'un Array
, en fait à décalage ing tous les autres éléments, tout pop
et push
ajouter / éléments à remove la fin de la Array
, préservant ainsi les autres indices des é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 saisit le premier élément, le supprime du tableau et renvoie l'élément supprimé. C'est fondamentalement une façon de traiter un tableau comme une pile: shift
c'est pop, unshift
c'est push.
pop
et push
sont aussi Array
méthode, il ne faut pas faire de confusion. :-)
Si vous pouvez considérer le tableau comme une file d'attente de valeurs à traiter, alors vous pouvez prendre la valeur suivante (avant) et "décaler" l'autre valeur pour occuper l'espace rendu disponible. unshift remet des valeurs - peut-être que vous n'êtes pas prêt à en traiter certaines, ou que vous laisserez du code plus tard les gérer.
shift/unshift
sont commepush/pop
à l'autre extrémité du tableau, vous pouvez supprimer mentalement le «f» du nom des méthodes pour vous rappeler lequel «vide» les éléments et celui qui les «insère». :)