Menu
Coddy logo textTech

Raccourcis pour les tableaux

Fait partie de la section Fondamentaux du Journey Ruby de Coddy — leçon 64 sur 88.

Ruby propose des raccourcis pratiques pour créer des tableaux, en particulier lors de la manipulation de chaînes de caractères ou de nombres séquentiels. Ces raccourcis permettent de gagner du temps et de rendre votre code plus propre.

La syntaxe %w crée un tableau de chaînes de caractères sans avoir besoin de guillemets ou de virgules :

fruits = %w[apple banana cherry]
puts fruits  # Sortie : apple, banana, cherry

Ceci est équivalent à écrire ["apple", "banana", "cherry"] mais beaucoup plus concis. Chaque mot séparé par un espace devient un élément distinct.

Pour les tableaux de symboles, utilisez %i :

statuses = %i[pending active completed]
puts statuses  # Affiche : pending, active, completed

Pour créer des tableaux de nombres séquentiels, vous pouvez convertir une plage en tableau en utilisant to_a :

numbers = (1..5).to_a
puts numbers  # Affiche : 1, 2, 3, 4, 5

Vous pouvez également utiliser l'opérateur splat * à l'intérieur de crochets de tableau :

countdown = [*5..10]
puts countdown  # Affiche : 5, 6, 7, 8, 9, 10

Ces raccourcis sont particulièrement utiles lorsque vous avez besoin de définir rapidement une liste de valeurs connues sans l'encombrement visuel des guillemets et des virgules.

challenge icon

Défi

Facile

Lisez deux entrées :

  1. Une seule ligne de mots séparés par des espaces (par exemple, red green blue yellow)
  2. Deux entiers séparés par une virgule représentant une plage (par exemple, 3,7)

Effectuez les tâches suivantes :

  1. Créez un tableau de chaînes de caractères à partir de la première entrée en utilisant la syntaxe raccourcie %w. Comme l'entrée est déjà une chaîne, vous devrez d'abord utiliser split pour la convertir en tableau, puis démontrer l'utilisation de %w en créant un tableau séparé avec les mots alpha, beta, gamma.
  2. Créez un tableau de symboles en utilisant %i avec les valeurs start, middle, end.
  3. Créez un tableau de nombres séquentiels à partir de la plage fournie dans la deuxième entrée en utilisant l'opérateur splat * à l'intérieur de crochets de tableau.

Affichez les éléments suivants sur des lignes séparées :

  1. Chaque élément du tableau de mots d'entrée
  2. Une ligne vide
  3. Chaque élément du tableau %w (alpha, beta, gamma)
  4. Une ligne vide
  5. Chaque élément du tableau de symboles %i
  6. Une ligne vide
  7. Chaque élément du tableau de la plage de nombres

Par exemple, si les entrées sont red green blue et 1,5, la sortie devrait être :

red
green
blue

alpha
beta
gamma

start
middle
end

1
2
3
4
5

Si les entrées sont sun moon star et 10,13, la sortie devrait être :

sun
moon
star

alpha
beta
gamma

start
middle
end

10
11
12
13

Aide-mémoire

Ruby propose des raccourcis pour créer des tableaux qui rendent le code plus propre et plus concis.

La syntaxe %w crée un tableau de chaînes de caractères sans guillemets ni virgules :

fruits = %w[apple banana cherry]
# Équivalent à ["apple", "banana", "cherry"]

La syntaxe %i crée un tableau de symboles :

statuses = %i[pending active completed]
# Équivalent à [:pending, :active, :completed]

Convertissez une plage (range) en tableau en utilisant to_a :

numbers = (1..5).to_a
# Crée [1, 2, 3, 4, 5]

Utilisez l'opérateur splat * à l'intérieur de crochets de tableau pour créer des tableaux à partir de plages :

countdown = [*5..10]
# Crée [5, 6, 7, 8, 9, 10]

Essayez vous-même

# Lire les mots séparés par des espaces
words_input = gets.chomp

# Lire la plage (deux entiers séparés par une virgule)
range_input = gets.chomp

# TODO: Écrivez votre code ci-dessous
# 1. Créer un tableau à partir de words_input en utilisant split
# 2. Créer un tableau %w avec alpha, beta, gamma
# 3. Créer un tableau %i avec start, middle, end
# 4. Analyser la plage et créer un tableau en utilisant l'opérateur splat (*)

# Afficher les éléments de chaque tableau sur des lignes séparées avec des lignes vides entre les tableaux
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux