Unions marquées et switch
Faites correspondre des motifs aux variantes de l'union.
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. 🧩
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
- Énumérations pour un ensemble fixe de valeurs
- Unions contenant l'un de plusieurs types
- Unions marquées et switch
- Méthodes d'énumération et entiers sous-jacents