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, cherryCeci 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, completedPour 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, 5Vous 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, 10Ces 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.
Défi
FacileLisez deux entrées :
- Une seule ligne de mots séparés par des espaces (par exemple,
red green blue yellow) - Deux entiers séparés par une virgule représentant une plage (par exemple,
3,7)
Effectuez les tâches suivantes :
- 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 utilisersplitpour la convertir en tableau, puis démontrer l'utilisation de%wen créant un tableau séparé avec les motsalpha,beta,gamma. - Créez un tableau de symboles en utilisant
%iavec les valeursstart,middle,end. - 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 :
- Chaque élément du tableau de mots d'entrée
- Une ligne vide
- Chaque élément du tableau
%w(alpha, beta, gamma) - Une ligne vide
- Chaque élément du tableau de symboles
%i - Une ligne vide
- 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
5Si 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
13Aide-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 tableauxCette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateurs logiques, partie 47Calculateur de partage de facture
Message de bienvenueSaisie de l'utilisateur10FizzBuzz avec une variante
Présentation du jeuLa méthode FizzBuzz2Variables et types de données
Nombres et variablesType de données StringType de données BooleanType de données SymbolVérification des types de donnéesConventions de nommageRécapitulatif - Création de variables5Prise de décision
Instruction IfIf - ElseRécapitulatif - Calculatrice simpleIf - Else imbriquésInstruction Unless8Boucles
Boucle For avec des intervallesBoucle WhileBreakNextRécapitulatif - FactorielleBoucle TimesBoucle UntilBoucles imbriquéesRécapitulatif - Entrée dynamique3Les opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloRaccourcis arithmétiquesRécapitulatif - Calculs simplesOpérateurs de comparaison6Entrées/Sorties de base
Sortie avec putsSortie avec print et pSortie avec des variablesEntrée avec getsLa méthode chompConversion de typesRécapitulatif - Calculateur d'âgeRécapitulatif - Vrai ou Faux9Méthodes
Définir une méthodeParamètres de méthodeValeurs de retourRécapitulatif - Méthode SigmaRécapitulatif - Méthode de validationValeurs de paramètres par défaut12Itérer sur les collections
L'itérateur EachEach avec indexItérer sur les chaînes de caractèresMap et Collect