Enum
Termasuk bagian Dasar-Dasar dalam perjalanan Solidity di Coddy. Pelajaran 44 dari 53.
Enum mendefinisikan sekumpulan kecil pilihan bernama. Deklarasikan anggotanya secara berurutan, lalu rujuk anggota dengan TypeName.MemberName. Anggota pertama memiliki nilai numerik nol, anggota berikutnya memiliki nilai satu, dan seterusnya. Pilihan bernama membuat status lebih mudah dibaca daripada angka yang tidak dijelaskan.
Deklarasikan ini dalam cakupan contract:
enum Phase { Waiting, Packing, Complete }Gunakan ini di dalam fungsi main yang disediakan:
Phase phase = Phase.Packing;
console.log(uint256(phase));Deklarasi mencantumkan Waiting, Packing, dan Complete. Packing adalah anggota kedua, sehingga nilainya dikonversi menjadi satu. Mengonversi angka sembarang menjadi enum dapat gagal jika angka tersebut berada di luar rentang yang ditentukan, jadi gunakan anggota bernama di sini.
Anggota enum memiliki nilai numerik yang dimulai dari nol sesuai urutan deklarasi.
Tantangan
MudahDeklarasikan enum Mode dengan Idle, Running, dan Finished dalam urutan tersebut. Pilih Running ketika active bernilai true, jika tidak pilih Idle, lalu cetak nilai numeriknya.
Pengujian memberikan argumen kepada main dalam urutan ini: bool active. Setiap pengujian dimulai dengan state contract yang baru.
Gunakan console.log untuk output yang diminta. Cetak hanya nilai yang diminta, satu per baris, tanpa label tambahan kecuali jika tugas memintanya.
Coba sendiri
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(bool active) external view {
// Tulis solusimu di sini.
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
2Variabel dan Tipe Data
Integer Tak BertandaInput dan OutputInteger BertandaNilai Booleanstring di MemoriKartu Profil5Fungsi
Parameter FungsiMengembalikan NilaiFungsi MurniPemanggilan Fungsi PembantuPerhitungan yang Dapat Digunakan KembaliLatihan sendiri: Playground Solidity