0Pricing
Ruby Academy · Leçon

Motifs de tableaux et de hachages

Déstructurez les données

Motifs de tableaux et de hachages est une leçon Ruby Academy gratuite sur CoddyKit. Ceci est la leçon 2 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.

Motifs de tableaux

Un motif de tableau fait correspondre la position et la longueur. Chaque motif d’élément est vérifié par rapport à l’élément correspondant.

case [1, 2, 3]
in [1, 2, 3]
  puts 'exact match'
end

Liaison des éléments d’un tableau

Utilisez des identifiants pour capturer chaque position dans une variable.

case [10, 20]
in [x, y]
  puts(x + y)
end

La longueur est importante

Par défaut, un motif de tableau exige la longueur exacte. Un motif de 2 éléments ne correspondra pas à un tableau de 3 éléments.

case [1, 2, 3]
in [a, b]
  puts 'two'
in [a, b, c]
  puts 'three'
end

Opérateur de collecte du reste

Un opérateur de collecte *rest capture un nombre quelconque d’éléments restants dans un tableau, ce qui rend la longueur flexible.

case [1, 2, 3, 4]
in [first, *rest]
  puts(first)
  p rest
end

Collecte au milieu

L’opérateur de collecte peut se placer entre des éléments fixes pour récupérer le début et la fin tout en ignorant le milieu.

case [1, 2, 3, 4, 5]
in [first, *, last]
  puts("#{first} ... #{last}")
end

Motifs de hachage

Un motif de hachage fait correspondre les clés. Il vérifie que les clés indiquées existent et que leurs valeurs correspondent ; les clés supplémentaires sont autorisées.

case { name: 'Ada', age: 36 }
in { name: 'Ada' }
  puts 'found Ada'
end

Liaison des valeurs d’un hachage

Capturez une valeur en donnant à la clé un nom de liaison. Écrire uniquement la clé la lie à une variable portant le même nom.

case { name: 'Bob', age: 25 }
in { name: String => n, age: Integer => a }
  puts("#{n} is #{a}")
end

Liaison abrégée des clés

Omettre le motif après une clé lie automatiquement une variable portant le nom de cette clé.

case { city: 'Istanbul' }
in { city: }
  puts(city)
end

Exiger l’absence de clés supplémentaires

Par défaut, les motifs de hachage ignorent les clés supplémentaires. Ajoutez **nil pour exiger que seules les clés indiquées soient présentes.

case { a: 1 }
in { a: 1, **nil }
  puts 'exactly one key'
end

Motifs imbriqués

Les motifs peuvent s’imbriquer librement, ce qui permet de déconstruire des structures profondes dans une seule branche.

data = { user: { name: 'Ada', tags: ['admin', 'dev'] } }
case data
in { user: { name:, tags: [first_tag, *] } }
  puts("#{name}: #{first_tag}")
end

Correspondance avec du JSON analysé

La correspondance de motifs s’associe parfaitement aux données JSON ou CSV analysées, en extrayant exactement les champs dont vous avez besoin.

require 'json'
resp = JSON.parse('{"status":"ok","items":[1,2,3]}', symbolize_names: true)
case resp
in { status: 'ok', items: }
  puts(items.sum)
end

Vérification rapide

Par défaut, le motif de hachage in { a: 1 } correspondra-t-il au hachage { a: 1, b: 2 } ?

Récapitulatif : motifs de tableaux et de hachages

Vous pouvez déconstruire des collections :

  • Les motifs de tableaux correspondent selon la position et la longueur
  • *rest capture les éléments restants
  • Les motifs de hachage correspondent selon les clés et autorisent les éléments supplémentaires
  • La notation abrégée { key: } lie les variables portant le même nom
  • **nil interdit les clés supplémentaires ; les motifs peuvent être profondément imbriqués
case { id: 1, items: [9, 8] }
in { items: [head, *] } then puts head
end

Questions Fréquemment Posées

La leçon « Motifs de tableaux et de hachages » est-elle gratuite ?

Oui — le texte complet de « Motifs de tableaux et de hachages » 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 « Motifs de tableaux et de hachages » ?

Déstructurez les données 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 2 sur 4.

Combien de temps prend la leçon « Motifs de tableaux et de hachages » ?

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