Menu
Coddy logo textTech

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.

challenge icon

Aufgabe

Einfach

Definiere 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.
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Solidity-Playground