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
enum Seasondefine cuatro constantes ordenadas.Season(uint8(season) + 1)pasa a la fase siguiente.requirese niega a avanzar más allá de la última.
Palabras clave y builtins usados aquí
boolcontractenumexternalfunctionpublicrequirereturnreturnsuint8
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.
Paso 3 de 3 en Almacenamiento; paso 7 de 28 en Fundamentos del lenguaje.