Menu
Coddy logo textTech

Énumérations

Fait partie de la section Fondamentaux du Journey Solidity de Coddy. Leçon 44 sur 53.

Un enum définit un petit ensemble de choix nommés. Déclarez ses membres dans l’ordre, puis faites référence à un membre sous la forme TypeName.MemberName. Le premier membre a la valeur numérique zéro, le suivant a la valeur un, et ainsi de suite. Les choix nommés rendent un statut plus facile à lire que des nombres inexpliqués.

Déclarez ceci au niveau du contrat :

enum Phase { Waiting, Packing, Complete }

Utilisez-le dans la fonction main fournie :

Phase phase = Phase.Packing;
console.log(uint256(phase));

La déclaration liste Waiting, Packing et Complete. Packing est le deuxième membre et se convertit donc en un. La conversion d’un nombre arbitraire en énumération peut échouer lorsque le nombre est en dehors de la plage définie : utilisez donc ici les membres nommés.

Les membres d’une énumération ont des valeurs numériques commençant à zéro, dans l’ordre de déclaration.

challenge icon

Défi

Facile

Déclarez l’énumération Mode avec Idle, Running et Finished dans cet ordre. Choisissez Running lorsque active vaut true, sinon Idle, et affichez la valeur numérique.

Les tests transmettent les arguments à main dans cet ordre : bool active. Chaque test commence avec un état de contrat réinitialisé.

Utilisez console.log pour la sortie demandée. Affichez uniquement les valeurs demandées, une par ligne, sans libellés supplémentaires, sauf si la tâche les spécifie.

Essayez vous-même

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(bool active) external view {
        // Écrivez votre solution ici.
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Playground Solidity