Menu
Coddy logo textTech

Typy wyliczeniowe

Część sekcji Podstawy ścieżki Solidity w Coddy. Lekcja 44 z 53.

Typ wyliczeniowy definiuje niewielki zestaw nazwanych opcji. Zadeklaruj jego elementy w odpowiedniej kolejności, a następnie odwołuj się do elementu jako TypeName.MemberName. Pierwszy element ma wartość liczbową zero, następny ma wartość jeden i tak dalej. Nazwane opcje sprawiają, że status jest łatwiejszy do odczytania niż niewyjaśnione liczby.

Zadeklaruj to na poziomie kontraktu:

enum Phase { Waiting, Packing, Complete }

Użyj tego w udostępnionej funkcji main:

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

Deklaracja wyliczenia zawiera Waiting, Packing i Complete. Packing jest drugim elementem, więc ma wartość jeden. Konwersja dowolnej liczby na wyliczenie może spowodować cofnięcie, jeśli liczba wykracza poza zdefiniowany zakres, dlatego używaj tutaj nazwanych elementów.

Wartości numeryczne elementów wyliczenia zaczynają się od zera i są przypisywane w kolejności deklaracji.

challenge icon

Wyzwanie

Łatwy

Zadeklaruj enum Mode z wartościami Idle, Running i Finished w tej kolejności. Wybierz Running, gdy active ma wartość true, w przeciwnym razie Idle, i wypisz wartość liczbową.

Testy przekazują argumenty do main w tej kolejności: bool active. Każdy test rozpoczyna się od świeżego stanu kontraktu.

Użyj console.log dla wymaganego wyjścia. Wypisz tylko wymagane wartości, po jednej w każdym wierszu, bez dodatkowych etykiet, chyba że zadanie je określa.

Spróbuj swoich sił

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(bool active) external view {
        // Wpisz tutaj swoje rozwiązanie.
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Solidity