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.
Wyzwanie
ŁatwyZadeklaruj 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.
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
2Zmienne i typy
Liczby całkowite bez znakuWejście i wyjścieLiczby całkowite ze znakiemWartości logiczneŁańcuchy znaków w pamięciKarta profilu5Funkcje
Parametry funkcjiZwracanie wartościFunkcje czysteWywołania pomocniczeWielokrotnego użytku obliczeniaPoćwicz samodzielnie: Edytor online Solidity