Bases de case/in
Correspondance structurelle
Bases de case/in est une leçon Ruby Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Ruby Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ruby Academy comprend 4 leçons au total.
La correspondance de motifs arrive
L’expression Ruby case/in effectue une correspondance structurelle de motifs : elle vérifie la forme et le contenu des données, pas seulement l’égalité. Il s’agit d’une amélioration puissante par rapport à case/when.
case 42
in Integer
puts 'it is an integer'
endcase/in ou case/when
case/when compare avec === (selon une logique d’égalité). case/in déconstruit les valeurs et peut lier des variables. Utilisez in pour faire correspondre la structure.
case 'hello'
in String => s
puts "string of length #{s.length}"
endCorrespondance avec des littéraux
Une branche in peut correspondre à une valeur littérale, comme une vérification d’égalité précise.
case 3
in 1 then puts 'one'
in 3 then puts 'three'
in _ then puts 'other'
endMotifs de type
Nommer une classe fait correspondre toute valeur de ce type, en s’appuyant en interne sur ===.
def describe(x)
case x
in Integer then 'number'
in String then 'text'
in Array then 'list'
end
end
puts(describe([1, 2]))Liaison de variables
Un identifiant nu dans un motif lie la valeur correspondante à une nouvelle variable que vous pouvez utiliser dans la branche.
case [1, 2]
in [a, b]
puts(a + b)
endLe joker
Le caractère de soulignement _ correspond à n’importe quoi sans créer de liaison. Utilisez-le comme cas général ou pour ignorer certaines positions.
case 99
in 0 then puts 'zero'
in _ then puts 'something else'
endOpérateur d’ancrage
Pour comparer à la valeur d’une variable existante (au lieu d’en lier une nouvelle), marquez-la avec ^.
expected = 5
case 5
in ^expected
puts 'matched the pinned value'
endMotifs alternatifs
Combinez des motifs avec | pour faire correspondre l’une de plusieurs possibilités dans une seule branche.
case 'b'
in 'a' | 'b' | 'c'
puts 'in the first three letters'
endLiaison de l’ensemble de la correspondance
Utilisez pattern => name pour vérifier un motif et lier simultanément la valeur correspondante à un nom.
case 'Ruby'
in String => word
puts(word.upcase)
endNoMatchingPatternError
Si aucune branche in ne correspond et qu’il n’y a pas de branche else, Ruby lève NoMatchingPatternError. Ajoutez une branche else pour gérer le reste en toute sécurité.
case 10
in 1 then puts 'one'
else
puts 'no specific match'
endCorrespondance sur une ligne
L’opérateur => effectue une correspondance d’affectation vers la droite sur une ligne et lève une exception en cas d’échec. L’opérateur in, lui, renvoie true/false.
result = [1, 2] in [Integer, Integer]
puts resultVérification rapide
Que se passe-t-il si un case/in ne possède aucune branche correspondante ni branche else ?
Récapitulatif : notions de base de case/in
Vous avez appris les fondamentaux de la correspondance structurelle :
case/infait correspondre la forme, pas seulement l’égalité- Littéraux, motifs de type et joker
_ - Liaison de variables et opérateur d’ancrage
^ - Alternatives avec
|etpattern => name - L’absence de correspondance lève
NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
endQuestions Fréquemment Posées
La leçon « Bases de case/in » est-elle gratuite ?
Oui — le texte complet de « Bases de case/in » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Ruby Academy, passe à CoddyKit PRO. Le cours Ruby Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Bases de case/in » ?
Correspondance structurelle Tu pratiques Ruby Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Ruby Academy ?
Aucune expérience préalable n'est requise. Ruby Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Bases de case/in » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Ruby Academy ?
Oui. Chaque leçon Ruby Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Bases de case/in
- Motifs de tableaux et de hachages
- Motifs de recherche et gardes
- Cas d’utilisation pratiques