0Pricing
Ruby Academy · Leçon

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'
end

case/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}"
end

Correspondance 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'
end

Motifs 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)
end

Le 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'
end

Opé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'
end

Motifs 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'
end

Liaison 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)
end

NoMatchingPatternError

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'
end

Correspondance 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 result

Vé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/in fait correspondre la forme, pas seulement l’égalité
  • Littéraux, motifs de type et joker _
  • Liaison de variables et opérateur d’ancrage ^
  • Alternatives avec | et pattern => name
  • L’absence de correspondance lève NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
end

Questions 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

  1. Bases de case/in
  2. Motifs de tableaux et de hachages
  3. Motifs de recherche et gardes
  4. Cas d’utilisation pratiques
← Retour à Ruby Academy