typestar

Enums en Solidity

Nombra las fases; camínalas en orden con un cast.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

// An enum names the phases; the contract walks them in order.
contract SeasonTracker {
    enum Season { Dormant, Blossom, Growing, Harvest }

    Season public season = Season.Dormant;

    function advance() external {
        require(season != Season.Harvest, "season over");
        season = Season(uint8(season) + 1);
    }

    function isPicking() external view returns (bool) {
        return season == Season.Harvest;
    }
}

Cómo funciona

  1. enum Season define cuatro constantes ordenadas.
  2. Season(uint8(season) + 1) pasa a la fase siguiente.
  3. require se niega a avanzar más allá de la última.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
445
Tokens
80
Ritmo de tres estrellas
60 tpm

Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 80 segundos.

Escribe este fragmento

Paso 3 de 3 en Almacenamiento; paso 7 de 28 en Fundamentos del lenguaje.

← Anterior Siguiente →

Enums en otros lenguajes