Qu'est-ce qu'un intervalle ?
Fait partie de la section Logique et Flux du Journey Ruby de Coddy — leçon 6 sur 56.
Vous avez déjà utilisé des plages avec les boucles for et le découpage de tableaux. Mais une plage est un véritable objet Ruby, pas seulement de la syntaxe, elle possède ses propres méthodes.
Créez-en un avec .. (deux points, inclusif) ou ... (trois points, excluant la valeur de fin) :
inclusive = 1..5 # 1, 2, 3, 4, 5
exclusive = 1...5 # 1, 2, 3, 4Convertissez une plage en un tableau avec to_a pour voir exactement ce qu'elle couvre :
puts (1..5).to_a.inspect # [1, 2, 3, 4, 5]
puts (1...5).to_a.inspect # [1, 2, 3, 4]Les plages ne sont pas réservées qu'aux nombres. Elles fonctionnent avec tout ce qui possède un ordre, y compris les lettres :
puts ("a".."e").to_a.inspect # ["a", "b", "c", "d", "e"]Défi
DébutantLisez deux entiers (deux lignes d'entrée) : un start et une end_value. Affichez trois lignes :
- La plage inclusive
start..end_valuesous forme de tableau (utilisezinspect) - La plage exclusive
start...end_valuesous forme de tableau - La taille de la plage inclusive
Pour l'entrée 1 puis 5, la sortie est :
[1, 2, 3, 4, 5]
[1, 2, 3, 4]
5Aide-mémoire
Les intervalles en Ruby utilisent .. (inclusif) ou ... (excluant la fin) :
inclusive = 1..5 # 1, 2, 3, 4, 5
exclusive = 1...5 # 1, 2, 3, 4Convertissez un intervalle en un tableau avec to_a :
puts (1..5).to_a.inspect # [1, 2, 3, 4, 5]
puts (1...5).to_a.inspect # [1, 2, 3, 4]Les intervalles fonctionnent également avec des lettres :
puts ("a".."e").to_a.inspect # ["a", "b", "c", "d", "e"]Essayez vous-même
start = gets.to_i
end_value = gets.to_i
# À FAIRE : afficher la plage inclusive, la plage exclusive et la taille inclusive
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et Flux
1Les chaînes de caractères en profondeur
Aperçu des méthodes de chaînesInterpolation de chaînesParcourir les chaînesSplit et JoinRécapitulatif - String Weaver4Blocs, Procs & Lambdas
Qu'est-ce qu'un bloc ?do..end vs AccoladesLe mot-clé yieldParamètres de blocProcs et LambdasRécapitulatif - Itérateur personnalisé7Hashes - Partie 2
Hash.new avec des valeurs par défautItérer sur les HashesHashes imbriquésFusion et transformationRécapitulatif - Compteur de fréquence10Projet - Dossiers étudiants
Présentation du projetAjouter un étudiant2Intervalles
Qu'est-ce qu'un intervalle ?Méthodes d'intervalleLes intervalles dans Case / WhenRécapitulatif - Pratique des intervalles5La puissance d'Enumerable
Select et RejectChaîner MapReduce / Injectcount, all?, any?, none?group_by et partitionsort_by, min_by, max_byRécapitulatif - Data Pipeline