0Pricing
Learn Rust Coding · Pelajaran

if let dan while let

Pencocokan ringkas

if let dan while let 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.

Pencocokan Ringkas

Terkadang Anda hanya memerlukan satu pola. if let dan while let menyediakan pencocokan ringkas tanpa match lengkap.

Bentuk if let

if let menjalankan sebuah blok hanya ketika nilai cocok dengan pola, sambil mengikat data yang ditangkap.

fn main() {
    let maybe = Some(10);
    if let Some(n) = maybe {
        println!("value is {n}");
    }
}

if let vs match

if let adalah bentuk singkat dari match dengan satu lengan yang menarik dan alur lanjut _ => (). Gunakan ini ketika kasus lain tidak perlu ditangani.

fn main() {
    let config: Option<i32> = None;
    // match equivalent would have an empty _ arm
    if let Some(v) = config {
        println!("configured: {v}");
    }
    println!("done");
}

Menambahkan else

Tambahkan else untuk menangani kasus yang tidak cocok.

fn main() {
    let result: Result<i32, String> = Err("boom".to_string());
    if let Ok(v) = result {
        println!("ok: {v}");
    } else {
        println!("failed");
    }
}

let else

let ... else mengikat nilai ketika polanya cocok; jika tidak, menjalankan blok yang menghentikan alur (seperti return). Sangat berguna untuk keluar lebih awal.

fn parse(s: &str) -> i32 {
    let Ok(n) = s.parse::<i32>() else {
        println!("not a number");
        return 0;
    };
    n * 2
}

fn main() {
    println!("{}", parse("21"));
    println!("{}", parse("oops"));
}

Bentuk while let

while let terus mengulang selama sebuah nilai cocok dengan pola. Ini sangat cocok untuk mengosongkan sesuatu seperti stack.

fn main() {
    let mut stack = vec![1, 2, 3];
    while let Some(top) = stack.pop() {
        println!("popped {top}");
    }
}

Mengulang pada Iterator

while let dapat melakukan iterasi dengan memanggil next berulang kali dan berhenti ketika hasilnya None.

fn main() {
    let mut iter = [10, 20, 30].into_iter();
    while let Some(x) = iter.next() {
        println!("{x}");
    }
}

Penjaga dengan if let

Gabungkan penjaga dengan menambahkan kondisi && (Rust 2024) atau dengan menempatkan if di dalamnya.

fn main() {
    let value = Some(8);
    if let Some(n) = value {
        if n > 5 {
            println!("big: {n}");
        }
    }
}

Kapan Menggunakan Masing-Masing

Panduan:

  • if let — tangani satu pola dan abaikan sisanya
  • let else — lakukan pengikatan atau keluar lebih awal
  • while let — ulangi selama sebuah pola terus cocok
  • match — ketika Anda perlu menangani beberapa kasus

Pertimbangan Keterbacaan

Bentuk-bentuk ini mengurangi kode berulang, tetapi dapat menyembunyikan kasus tertentu. Jika Anda mendapati diri menangani beberapa pola, kembali gunakan match lengkap agar lebih jelas.

Menumpuk if let

Anda dapat merangkai nilai opsional dengan menumpuk if let, sehingga satu lapisan dibuka setiap kali.

fn main() {
    let outer: Option<Option<i32>> = Some(Some(99));
    if let Some(inner) = outer {
        if let Some(value) = inner {
            println!("value is {value}");
        }
    }
}

Pemeriksaan Singkat

Konstruksi mana yang berulang kali menjalankan isi perulangan selama sebuah nilai terus cocok dengan pola?

Ringkasan

Anda telah mempelajari pencocokan ringkas:

  • if let menangani satu pola, secara opsional dengan else
  • let else mengikat nilai atau menghentikan alur lebih awal
  • while let mengulang selama sebuah pola cocok
  • Beralihlah ke match ketika beberapa kasus perlu ditangani

Pertanyaan yang Sering Diajukan

Apakah pelajaran “if let dan while let” gratis?

Ya — teks lengkap “if let dan while let” 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 “if let dan while let”?

Pencocokan ringkas 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 “if let dan while let” 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. Pendalaman match
  2. if let dan while let
  3. Binding dengan @
  4. Destrukturisasi
← Kembali ke Learn Rust Coding