Contactez-nous

Comment ajouter, accéder et supprimer des éléments

Maîtrisez les opérations de base sur les tableaux Ruby. Apprenez comment ajouter des éléments avec `<<`, y accéder avec `[]`, les modifier, et les supprimer avec `.delete` et `.delete_at`. Essentiel pour manipuler dynamiquement des listes de données.

Comment accéder à un élément via son index ?

Une fois votre tableau créé, l'opération la plus fondamentale est de pouvoir lire la valeur stockée dans un de ses 'tiroirs'. Pour cela, on utilise la même syntaxe que pour la création : les crochets [], mais cette fois-ci en y plaçant l'index de l'élément désiré.

Rappelez-vous la règle d'or que nous aborderons plus en détail dans la section sur les erreurs communes : l'indexation commence toujours à 0. Ainsi, pour accéder au premier élément, vous utiliserez l'index 0, pour le deuxième, l'index 1, et ainsi de suite.

fruits = ["pomme", "banane", "orange"]

# Accéder au premier élément
puts fruits[0] # Affiche : pomme

# Accéder au troisième élément
puts fruits[2] # Affiche : orange

Vous vous demandez peut-être ce qui se passe si vous essayez d'accéder à un index qui n'existe pas ? Contrairement à d'autres langages qui pourraient générer une erreur fatale, Ruby adopte un comportement souple : il retourne simplement nil, l'objet qui représente l'absence de valeur. C'est une particularité très pratique à connaître.

puts fruits[5].class # Affiche : NilClass
Conseil pro : Ruby propose un raccourci très élégant pour accéder aux éléments depuis la fin du tableau. En utilisant un index négatif, vous pouvez compter à rebours : -1 pour le dernier élément, -2 pour l'avant-dernier, etc. C'est une technique extrêmement courante et idiomatique.
puts fruits[-1] # Affiche : orange
puts fruits[-2] # Affiche : banane

Comment ajouter des éléments à un tableau ?

Un tableau est rarement statique. Dans une application réelle, vous aurez constamment besoin d'y ajouter de nouveaux éléments. La manière la plus idiomatique et la plus fréquente en Ruby est d'utiliser l'opérateur 'pelle' (shovel) : <<.

Cet opérateur ajoute l'élément spécifié à la toute fin du tableau. C'est une opération très efficace et visuellement explicite : on 'pousse' littéralement une nouvelle valeur dans la collection.

# On commence avec une liste de deux tâches
todo_list = ["Acheter du lait", "Faire le ménage"]

# On ajoute une nouvelle tâche
todo_list << "Appeler le plombier"

# Le tableau contient maintenant 3 éléments
puts todo_list.inspect # Affiche : ["Acheter du lait", "Faire le ménage", "Appeler le plombier"]

Il existe également une méthode équivalente nommée .push() qui accomplit exactement la même chose. La différence principale est que .push() peut accepter plusieurs arguments pour ajouter plusieurs éléments en une seule fois, tandis que l'opérateur << n'en prend qu'un. Dans la communauté Ruby, << est généralement préféré pour l'ajout d'un seul élément car il est considéré comme plus élégant et légèrement plus rapide.

numbers = [1, 2]
numbers.push(3, 4) # Ajoute 3, puis 4
puts numbers.inspect # Affiche : [1, 2, 3, 4]

Comment modifier un élément existant ?

Modifier la valeur d'un élément est tout aussi simple. La logique combine l'accès et l'assignation. Vous utilisez d'abord les crochets [] pour cibler l'index de l'élément que vous souhaitez changer, puis vous utilisez l'opérateur d'assignation = pour lui donner une nouvelle valeur.

Cette opération remplace écrasera la valeur précédente à l'index spécifié sans modifier la taille du tableau.

scores = [150, 220, 185]

# Le joueur au deuxième rang (index 1) a amélioré son score
scores[1] = 235

puts scores.inspect # Affiche : [150, 235, 185]

Quelles sont les méthodes pour supprimer des éléments ?

Il existe deux approches principales pour supprimer des éléments, chacune répondant à un besoin différent : la suppression par position (index) et la suppression par valeur.

Pour supprimer un élément à une position spécifique, utilisez la méthode .delete_at(index). Elle prend en argument l'index de l'élément à retirer. Le tableau est alors automatiquement réorganisé pour combler le vide.

participants = ["Alice", "Bob", "Charlie", "David"]

# Bob (à l'index 1) se désiste
participants.delete_at(1)

puts participants.inspect # Affiche : ["Alice", "Charlie", "David"]

Si vous ne connaissez pas la position mais que vous connaissez la valeur de l'élément à supprimer, utilisez la méthode .delete(valeur). Une chose importante à savoir : cette méthode supprimera toutes les occurrences de la valeur dans le tableau.

notes = [12, 15, 9, 15, 18]

# On veut supprimer toutes les notes égales à 15
notes.delete(15)

puts notes.inspect # Affiche : [12, 9, 18]