Menu
CoddyTech

Enum

Termasuk bagian Dasar-Dasar dalam perjalanan Solidity di Coddy. Pelajaran 44 dari 53.

enum mendefinisikan sejumlah 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 di lingkup kontrak:

enum Phase { Waiting, Packing, Complete }

Gunakan ini di dalam fungsi main yang disediakan:

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

Deklarasi ini mencantumkan Waiting, Packing, dan Complete. Packing adalah anggota kedua, sehingga nilainya 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.

challenge icon

Tantangan

Mudah

Nyatakan enum Mode dengan Idle, Running, dan Finished secara berurutan. Pilih Running saat 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 kontrak yang baru.

Gunakan console.log untuk output yang diminta. Cetak hanya nilai yang diminta, satu per baris, tanpa label tambahan kecuali jika ditentukan dalam tantangan.

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.
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Playground Solidity