Aufzählungen
Teil des Abschnitts Grundlagen der Solidity-Journey von Coddy. Lektion 44 von 53.
Ein Enum definiert eine kleine Menge benannter Auswahlmöglichkeiten. Deklariere seine Member in der angegebenen Reihenfolge und verweise dann mit TypeName.MemberName auf ein Member. Das erste Member hat den numerischen Wert null, das nächste den Wert eins und so weiter. Benannte Auswahlmöglichkeiten machen einen Status leichter lesbar als nicht erklärte Zahlen.
Deklariere dies im Gültigkeitsbereich des Vertrags:
enum Phase { Waiting, Packing, Complete }Verwende es innerhalb der bereitgestellten main-Funktion:
Phase phase = Phase.Packing;
console.log(uint256(phase));Die Deklaration listet Waiting, Packing und Complete auf. Packing ist das zweite Mitglied und wird daher in eins umgewandelt. Die Umwandlung einer beliebigen Zahl in ein Enum kann fehlschlagen, wenn die Zahl außerhalb seines definierten Bereichs liegt; verwende daher hier benannte Mitglieder.
Enum-Mitglieder haben numerische Werte, die in der Reihenfolge der Deklaration bei null beginnen.
Aufgabe
EinfachDefiniere enum Mode mit Idle, Running und Finished in dieser Reihenfolge. Wähle Running, wenn active true ist, andernfalls Idle, und gib den numerischen Wert aus.
Die Tests übergeben main Argumente in dieser Reihenfolge: bool active. Jeder Test beginnt mit einem frischen Contract-Zustand.
Verwende console.log für die angeforderte Ausgabe. Gib nur die angeforderten Werte aus, einen pro Zeile, ohne zusätzliche Beschriftungen, sofern die Aufgabe diese nicht vorgibt.
Probier es selbst
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(bool active) external view {
// Schreibe deine Lösung hier.
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
2Variablen und Datentypen
Vorzeichenlose GanzzahlenEingaben und AusgabenVorzeichenbehaftete GanzzahlenBoolesche WerteStrings im SpeicherProfilkarte5Funktionen
FunktionsparameterRückgabewerteReine FunktionenHilfsaufrufeWiederverwendbare BerechnungenÜbe selbstständig: Solidity-Playground