Learn Rust Coding · Pelajaran

Mendefinisikan Enum Pertama Anda

Buat tipe terenumerasi yang sederhana.

Pelajaran 1 dari 413 langkah

Mendefinisikan Enum Pertama Anda adalah pelajaran Learn Rust Coding gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn Rust Coding, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn Rust Coding mencakup 4 pelajaran total.

What Is an Enum?

Enum (enumerasi) memungkinkan Anda mendefinisikan suatu tipe dengan mencantumkan nilai-nilai yang mungkin, yang disebut varian. Nilai dari tipe tersebut hanya bisa berupa salah satu dari varian-varian tersebut.

Enum sangat berguna ketika sesuatu memiliki sekumpulan kondisi yang tetap, seperti arah mata angin atau jenis kartu dalam setumpuk kartu.

enum Direction {
    North,
    South,
    East,
    West,
}

Mendeklarasikan Enum

Anda mendeklarasikan enum dengan kata kunci enum, nama, dan daftar varian yang dipisahkan koma di dalam kurung kurawal.

Berdasarkan konvensi, nama enum menggunakan PascalCase (seperti Direction), begitu juga nama variannya (seperti North).

enum TrafficLight {
    Red,
    Yellow,
    Green,
}

Membuat Nilai Enum

Untuk membuat sebuah nilai, tulis nama enum, dua titik dua ::, lalu variannya.

Misalnya, Direction::North membuat nilai bertipe Direction. :: memberi tahu Rust enum mana yang menjadi milik varian tersebut.

enum Direction {
    North,
    South,
    East,
    West,
}

fn main() {
    let heading = Direction::East;
    println!("Created a direction value!");
}

Enum Adalah Tipe

Setelah didefinisikan, enum merupakan tipe nyata seperti i32 atau bool. Anda dapat menyimpan nilainya dalam variabel dan meneruskannya ke fungsi.

Fungsi yang menerima Direction akan menerima varian apa pun darinya, tetapi tidak menerima hal lainnya.

enum Direction {
    North,
    South,
}

fn describe(d: Direction) {
    println!("Got a direction");
}

fn main() {
    describe(Direction::North);
}

Mengapa Tidak Menggunakan Angka Saja?

Anda dapat merepresentasikan lampu lalu lintas dengan 0, 1, dan 2, tetapi tidak ada yang mencegah Anda menggunakan 7 secara tidak sengaja.

Enum membuat keadaan yang tidak valid menjadi mustahil: kompiler menjamin bahwa nilainya selalu merupakan salah satu varian yang tercantum. Ini lebih aman dan jauh lebih mudah dibaca.

Menurunkan Debug untuk Mencetak

Secara bawaan, Rust tidak tahu cara mencetak enum. Menambahkan #[derive(Debug)] di atas enum memungkinkan Anda mencetaknya dengan pemformat {:?}.

Ini sangat berguna untuk penelusuran kesalahan cepat saat Anda belajar.

#[derive(Debug)]
enum Direction {
    North,
    South,
}

fn main() {
    let d = Direction::South;
    println!("{:?}", d);
}

Membandingkan Nilai Enum

Tambahkan #[derive(PartialEq)] agar Anda dapat membandingkan varian dengan ==.

Ini berguna untuk pemeriksaan sederhana, meskipun untuk perilaku yang lebih kompleks, ekspresi match (yang akan segera dipelajari) biasanya merupakan alat yang lebih baik.

#[derive(PartialEq)]
enum Light {
    Red,
    Green,
}

fn main() {
    let l = Light::Red;
    if l == Light::Red {
        println!("Stop!");
    }
}

Boleh Memiliki Banyak Varian

Enum dapat memiliki varian sebanyak yang Anda perlukan. Semuanya merupakan bagian dari tipe yang sama.

Mencantumkan keadaan yang berkaitan secara bersamaan membuat kode Anda tetap teratur dan membuat pilihan yang mungkin terlihat jelas sekilas.

enum Suit {
    Hearts,
    Diamonds,
    Clubs,
    Spades,
}

Enum dalam Pustaka Standar

Pustaka standar Rust sendiri menggunakan enum di mana-mana. Dua enum yang terkenal adalah Option (nilai yang mungkin ada atau tidak ada) dan Result (keberhasilan atau kesalahan).

Mempelajari enum sekarang mempersiapkan Anda untuk memahami tipe inti ini nanti.

// Option is an enum in std:
// enum Option<T> {
//     Some(T),
//     None,
// }

Menyalin Enum Sederhana

Enum yang variannya tidak menyimpan data dapat menurunkan Clone dan Copy. Dengan demikian, nilai disalin secara otomatis, bukan dipindahkan.

Hal ini membuat enum keadaan kecil berperilaku seperti nilai sederhana, misalnya bilangan bulat.

#[derive(Clone, Copy)]
enum Coin {
    Heads,
    Tails,
}

fn main() {
    let a = Coin::Heads;
    let b = a; // a is still usable
}

Menyatukan Semuanya

Berikut program lengkapnya: definisikan enum, buat nilai, lalu cetak menggunakan Debug.

Jalankan program tersebut dan coba ubah Green menjadi varian lain untuk melihat hasilnya berubah.

#[derive(Debug)]
enum TrafficLight {
    Red,
    Yellow,
    Green,
}

fn main() {
    let current = TrafficLight::Green;
    println!("Light is {:?}", current);
}

Pemeriksaan Singkat

Uji pemahaman Anda tentang dasar-dasar enum.

Ringkasan

Anda telah mempelajari bahwa enum mendefinisikan tipe dari daftar tetap varian, yang dideklarasikan dengan kata kunci enum.

Anda membuat nilai dengan EnumName::Variant, dan dapat menurunkan Debug, PartialEq, atau Copy untuk mencetak, membandingkan, dan menyalinnya. Selanjutnya Anda akan mempelajari cara merespons setiap varian dengan match.

Gratis untuk memulai

Belajar Rust dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
39
Pelajaran
144

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mendefinisikan Enum Pertama Anda” gratis?

Ya — teks lengkap “Mendefinisikan Enum Pertama Anda” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn Rust Coding, upgrade ke CoddyKit PRO. Kursus Learn Rust Coding mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mendefinisikan Enum Pertama Anda”?

Buat tipe terenumerasi yang sederhana. Kamu berlatih Learn Rust Coding dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Learn Rust Coding?

Tidak diperlukan pengalaman sebelumnya. Learn Rust Coding di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Mendefinisikan Enum Pertama Anda” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn Rust Coding ini?

Ya. Setiap pelajaran Learn Rust Coding menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mendefinisikan Enum Pertama Anda
  2. Mencocokkan Varian Enum
  3. Enum dengan Data
  4. Penjaga dan Pengikatan Match
← Kembali ke Learn Rust Coding