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.
Sfida
FacileDichiara 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.
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
2Variabili e tipi
Interi senza segnoInput e outputInteri con segnoValori booleaniStringhe in memoriaScheda profilo5Funzioni
Parametri delle funzioniValori di ritornoFunzioni pureChiamate di supportoCalcoli riutilizzabiliEsercitati da solo: Playground Solidity