Méthodes d'énumération et entiers sous-jacents
Ajoutez un comportement et contrôlez la représentation.
Méthodes d'énumération et entiers sous-jacents est une leçon Zig Academy gratuite sur CoddyKit. Ceci est la leçon 4 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.
Les énumérations peuvent avoir un comportement
Une énumération est un véritable type, elle peut donc contenir des méthodes. Vous déclarez les fonctions dans le corps de l’énumération, juste à côté des noms de valeurs.
Une méthode sur une énumération
Écrivez une fonction dans l’énumération et prenez self comme premier paramètre. Elle fonctionne comme une méthode sur une structure.
const Color = enum { red, green, fn isRed(self: Color) bool { return self == .red; } };Appeler les méthodes d’une énumération
Vous appelez une méthode avec la syntaxe pointée sur une valeur. La valeur devient self, et la méthode sait ainsi sur quelle variante elle a été appelée.
const ok = c.isRed();Chaque énumération repose sur un entier
En interne, chaque valeur d’énumération correspond à un entier. Zig choisit un type entier de support suffisamment petit pour contenir toutes vos valeurs.
La numérotation par défaut commence à zéro
Par défaut, la première valeur est 0 et chaque valeur suivante augmente de un. Ainsi, red vaut 0, green vaut 1, et ainsi de suite selon l’ordre.
const Color = enum { red, green, blue }; // 0, 1, 2Choisir le type de support
Vous pouvez nommer l’entier de support entre parenthèses, comme dans enum(u8). Cela fixe la largeur exacte et compte pour la disposition en mémoire et l’interopérabilité.
const Code = enum(u8) { a, b, c };Définir des valeurs explicites
Attribuez un nombre précis à une valeur avec =. C’est utile lorsque les entiers doivent correspondre à un protocole ou à un registre matériel.
const Status = enum(u8) { ok = 0, busy = 1, err = 255 };De l’énumération vers l’entier
Transformez une valeur d’énumération en nombre avec @intFromEnum. Vous obtenez ainsi l’entier sous-jacent à envoyer ou à stocker.
const n = @intFromEnum(Status.err); // 255De l’entier vers l’énumération
Faites l’inverse avec @enumFromInt pour reconvertir un nombre en valeur d’énumération du type attendu.
const s: Status = @enumFromInt(1);Convertir avec prudence
@enumFromInt suppose que le nombre correspond à une variante valide. Dans les compilations sûres, une valeur incorrecte est détectée ; sinon, c’est à vous de la valider.
Méthodes et étiquettes combinées
Combinez les deux idées : choisissez un type de support pour la disposition, définissez les valeurs pour un protocole et ajoutez des méthodes afin que l’énumération reste autonome.
Vérification rapide
Vous avez une valeur de l’énumération Status et vous avez besoin de son nombre sous-jacent. Quel élément intégré utiliser ?
Récapitulatif
Vous avez doté les énumérations de méthodes avec self, choisi un entier de support comme enum(u8), défini des valeurs explicites et effectué les conversions dans les deux sens avec @intFromEnum et @enumFromInt. 🔢
Questions Fréquemment Posées
La leçon « Méthodes d'énumération et entiers sous-jacents » est-elle gratuite ?
Oui — le texte complet de « Méthodes d'énumération et entiers sous-jacents » 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 « Méthodes d'énumération et entiers sous-jacents » ?
Ajoutez un comportement et contrôlez la représentation. 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 4 sur 4.
Combien de temps prend la leçon « Méthodes d'énumération et entiers sous-jacents » ?
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