0Pricing
Learn Rust Coding · Pelajaran

Mencocokkan Varian Enum

Gunakan match untuk menangani setiap kasus.

Mencocokkan Varian Enum adalah pelajaran Learn Rust Coding gratis di CoddyKit. Ini adalah pelajaran 2 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.

Berkenalan dengan Ekspresi match

Ekspresi match membandingkan sebuah nilai dengan serangkaian pola dan menjalankan kode untuk pola pertama yang cocok.

Ekspresi ini merupakan pasangan alami enum: Anda dapat menangani setiap varian dalam lengannya sendiri.

enum Light {
    Red,
    Green,
}

fn action(l: Light) {
    match l {
        Light::Red => println!("Stop"),
        Light::Green => println!("Go"),
    }
}

Anatomi Lengan match

Setiap lengan berbentuk pattern => expression, dan lengan dipisahkan dengan koma.

Pola menentukan hal yang dicocokkan, sedangkan ekspresi setelah => dijalankan saat pola tersebut cocok. Di sini polanya adalah satu varian enum.

match light {
    Light::Red => println!("Stop"),
    Light::Green => println!("Go"),
}

Program Pencocokan Lengkap

Berikut program lengkap yang mencocokkan lampu lalu lintas dan mencetak instruksi.

Jalankan program tersebut, lalu ubah variannya di main untuk melihat lengan lain dijalankan.

enum TrafficLight {
    Red,
    Yellow,
    Green,
}

fn main() {
    let light = TrafficLight::Yellow;
    match light {
        TrafficLight::Red => println!("Stop"),
        TrafficLight::Yellow => println!("Slow down"),
        TrafficLight::Green => println!("Go"),
    }
}

match Harus Mencakup Semuanya

Rust mengharuskan match mencakup setiap varian yang mungkin. Jika Anda melupakan satu varian, program tidak akan dikompilasi.

Ini adalah fitur keamanan yang kuat: jika nanti Anda menambahkan varian baru, kompiler akan mengingatkan Anda tentang setiap tempat yang harus menanganinya.

// This would FAIL to compile because
// the Green case is missing:
// match light {
//     Light::Red => println!("Stop"),
// }

Pencocokan Semua dengan _

Saat Anda tidak ingin mencantumkan setiap varian, gunakan garis bawah _ sebagai pola pencocokan semua. Pola ini cocok dengan apa pun yang belum ditangani di atasnya.

Letakkan pola tersebut di bagian terakhir karena lengan dicoba secara berurutan.

enum Coin {
    Penny,
    Nickel,
    Dime,
    Quarter,
}

fn main() {
    let c = Coin::Dime;
    match c {
        Coin::Penny => println!("1 cent"),
        _ => println!("Some other coin"),
    }
}

match Mengembalikan Nilai

match adalah sebuah ekspresi, sehingga menghasilkan nilai yang dapat Anda simpan dalam variabel.

Setiap lengan harus mengembalikan tipe yang sama. Perhatikan bahwa tidak ada titik koma setelah ekspresi setiap lengan di sini.

enum Coin {
    Penny,
    Quarter,
}

fn main() {
    let coin = Coin::Quarter;
    let cents = match coin {
        Coin::Penny => 1,
        Coin::Quarter => 25,
    };
    println!("{} cents", cents);
}

Isi Lengan Multi-Baris

Sebuah lengan dapat menjalankan beberapa pernyataan dengan membungkusnya dalam kurung kurawal { ... }.

Ekspresi terakhir di dalam kurung kurawal adalah nilai yang dihasilkan lengan tersebut.

match light {
    Light::Red => {
        println!("Caution!");
        println!("Stop the car");
    }
    Light::Green => println!("Go"),
}

Menggabungkan Pola dengan |

Gunakan garis vertikal | untuk mencocokkan beberapa varian dalam satu lengan. Simbol ini bermakna “atau”.

Dengan demikian, Anda tidak perlu mengulangi isi yang sama untuk varian yang harus berperilaku identik.

enum Coin {
    Penny,
    Nickel,
    Dime,
    Quarter,
}

fn main() {
    let c = Coin::Nickel;
    match c {
        Coin::Penny | Coin::Nickel => println!("Small coin"),
        _ => println!("Bigger coin"),
    }
}

match dibandingkan if/else

Anda dapat merangkai if / else if untuk memeriksa varian, tetapi match lebih jelas dan aman.

Dengan match, kompiler memverifikasi bahwa Anda telah menangani setiap kasus. Rangkaian pernyataan if tidak memberikan jaminan tersebut.

Mencocokkan dan Mencetak Bersamaan

Pola yang umum adalah mengubah varian menjadi string yang mudah dipahami lalu mencetaknya.

Jalankan program ini dan ubah arah yang dipilih untuk melihat pesan hasil pencocokan.

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

fn main() {
    let d = Direction::West;
    let name = match d {
        Direction::North => "North",
        Direction::South => "South",
        Direction::East => "East",
        Direction::West => "West",
    };
    println!("Heading {}", name);
}

Urutan Itu Penting

Lengan diperiksa dari atas ke bawah, dan kecocokan pertama yang berhasil akan digunakan. Lengan lainnya dilewati.

Inilah alasan pola pencocokan semua _ harus diletakkan terakhir: jika diletakkan pertama, pola tersebut akan mengambil setiap nilai sebelum lengan khusus dapat dijalankan.

Pemeriksaan Singkat

Periksa pemahaman Anda tentang match.

Ringkasan

Anda telah mempelajari bahwa match membandingkan nilai dengan pola dan menjalankan lengan pertama yang cocok.

Ekspresi ini harus mencakup semua kemungkinan, dapat menggunakan _ sebagai pencocokan semua, dapat menggabungkan varian dengan |, dan mengembalikan nilai karena merupakan ekspresi. Selanjutnya Anda akan memberi data tersendiri pada varian enum.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mencocokkan Varian Enum” gratis?

Ya — teks lengkap “Mencocokkan Varian Enum” 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 “Mencocokkan Varian Enum”?

Gunakan match untuk menangani setiap kasus. 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 2 dari 4.

Berapa lama pelajaran “Mencocokkan Varian Enum” 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