Menu
Coddy logo textTech

Enums

Parte da seção Fundamentos do Journey de Solidity da Coddy. Lição 44 de 53.

Uma enumeração define um pequeno conjunto de opções nomeadas. Declare seus membros em ordem e, em seguida, faça referência a um membro como TypeName.MemberName. O primeiro membro tem valor numérico zero, o próximo tem valor um e assim por diante. Opções nomeadas tornam um status mais fácil de ler do que números sem explicação.

Declare isto no escopo do contrato:

enum Phase { Waiting, Packing, Complete }

Use-a dentro da função main fornecida:

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

A declaração lista Waiting, Packing e Complete. Packing é o segundo membro e, portanto, converte-se em um. Converter um número arbitrário em um enum pode causar uma reversão quando o número está fora do intervalo definido, então use membros nomeados aqui.

Os membros do enum têm valores numéricos começando em zero, na ordem da declaração.

challenge icon

Desafio

Fácil

Declare o enum Mode com Idle, Running e Finished, nessa ordem. Escolha Running quando active for true; caso contrário, Idle, e imprima o valor numérico.

Os testes passam argumentos para main nesta ordem: bool active. Cada teste começa com o estado do contrato limpo.

Use console.log para a saída solicitada. Imprima apenas os valores solicitados, um por linha, sem rótulos adicionais, a menos que a tarefa os especifique.

Experimente você mesmo

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(bool active) external view {
        // Escreva sua solução aqui.
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Playground de Solidity