Zig Academy · Leçon

Unions marquées et switch

Faites correspondre des motifs aux variantes de l'union.

Leçon 3 sur 413 étapes

Unions marquées et switch est une leçon Zig Academy gratuite sur CoddyKit. Ceci est la leçon 3 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 Zig Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Zig Academy comprend 4 leçons au total.

Mémoriser la variante

Une union simple oublie quel champ est actif. Une union étiquetée associe la valeur à une étiquette d’énumération qui indique la variante actuelle.

Déclarer une union étiquetée

Vous écrivez union(enum) pour laisser Zig générer automatiquement une étiquette correspondante, avec un nom d’étiquette par champ.

const Value = union(enum) { int: i64, text: []const u8 };

L’étiquette suit le champ

La valeur porte désormais sa propre étiquette, comme .int ou .text. L’union sait toujours quelle variante elle contient actuellement.

var v = Value{ .int = 7 };

Parcourir les variantes avec switch

Utilisez switch sur une union étiquetée pour effectuer une branche selon la variante. Chaque cas nomme une étiquette et traite cette forme de la valeur.

switch (v) { .int => {}, .text => {} }

Capturer la charge utile

Ajoutez une capture entre des barres verticales pour extraire la valeur interne du champ actif, prête à être utilisée dans cette branche.

switch (v) { .int => |n| useInt(n), .text => |s| useText(s) }

L’exhaustivité est imposée

Zig exige que chaque variante soit traitée. Oubliez un cas et le compilateur vous arrête, afin qu’aucun cas ne soit ignoré silencieusement.

La branche else

Lorsque vous voulez traiter le reste au même endroit, ajoutez une branche else pour couvrir les variantes que vous n’avez pas listées explicitement.

switch (v) { .int => |n| useInt(n), else => {} }

switch est une expression

Un switch peut produire une valeur, chaque branche renvoie donc quelque chose. Vous affectez l’ensemble du switch à une variable en une seule étape.

const kind = switch (v) { .int => 1, .text => 2 };

Modifier via une capture

Capturez par pointeur avec |*field| lorsque vous voulez modifier la charge utile sur place plutôt que de la copier hors de l’union.

switch (v) { .int => |*n| n.* += 1, else => {} }

Un type somme sûr du point de vue des types

Les unions étiquetées sont les types somme sûrs de Zig : une valeur, plusieurs formes, et un switch dont le compilateur prouve que vous avez traité le tout complètement.

Idéal pour les analyseurs et les états

Ce modèle convient parfaitement aux jetons, aux nœuds AST et aux machines à états : modélisez chaque cas une fois et laissez switch orienter la logique.

Vérification rapide

Que vous apporte l’écriture union(enum) par rapport à une union simple ?

Récapitulatif

Vous avez découvert les unions étiquetées : union(enum) suit la variante active. Utilisez switch, capturez les charges utiles avec des barres, et le compilateur impose le traitement de chaque cas. 🧩

Gratuit pour commencer

Apprends Zig avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
30
Leçons
120

Questions Fréquemment Posées

La leçon « Unions marquées et switch » est-elle gratuite ?

Oui — le texte complet de « Unions marquées et switch » 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 Zig Academy, passe à CoddyKit PRO. Le cours Zig Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Unions marquées et switch » ?

Faites correspondre des motifs aux variantes de l'union. Tu pratiques Zig 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 Zig Academy ?

Aucune expérience préalable n'est requise. Zig 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 3 sur 4.

Combien de temps prend la leçon « Unions marquées et switch » ?

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 Zig Academy ?

Oui. Chaque leçon Zig 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. Énumérations pour un ensemble fixe de valeurs
  2. Unions contenant l'un de plusieurs types
  3. Unions marquées et switch
  4. Méthodes d'énumération et entiers sous-jacents
← Retour à Zig Academy