Menu
Coddy logo textTech

Enum

Fa parte della sezione Fondamenti del percorso Solidity di Coddy. Lezione 44 di 53.

Un'enumerazione definisce un piccolo insieme di scelte con nome. Dichiarane i membri in ordine, poi fai riferimento a un membro come TypeName.MemberName. Il primo membro ha valore numerico zero, il successivo ha valore uno e così via. Le scelte con nome rendono uno stato più facile da leggere rispetto a numeri non spiegati.

Dichiarala a livello di contratto:

enum Phase { Waiting, Packing, Complete }

Usala all'interno della funzione main fornita:

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

La dichiarazione elenca Waiting, Packing e Complete. Packing è il secondo membro e quindi viene convertito in uno. La conversione di un numero arbitrario in un enum può fallire quando il numero è al di fuori dell'intervallo definito, quindi qui usa i membri con nome.

I membri degli enum hanno valori numerici che partono da zero, nell'ordine in cui sono dichiarati.

challenge icon

Sfida

Facile

Dichiara l'enum Mode con Idle, Running e Finished in quest'ordine. Scegli Running quando active è true, altrimenti Idle, e stampa il valore numerico.

I test passano gli argomenti a main in questo ordine: bool active. Ogni test inizia con lo stato del contratto appena inizializzato.

Usa console.log per l'output richiesto. Stampa solo i valori richiesti, uno per riga, senza etichette aggiuntive, a meno che il compito non le specifichi.

Provalo tu

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(bool active) external view {
        // Scrivi qui la tua soluzione.
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Solidity