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 sisanyalet else— lakukan pengikatan atau keluar lebih awalwhile let— ulangi selama sebuah pola terus cocokmatch— 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 letmenangani satu pola, secara opsional denganelselet elsemengikat nilai atau menghentikan alur lebih awalwhile letmengulang selama sebuah pola cocok- Beralihlah ke
matchketika 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
- Pendalaman match
- if let dan while let
- Binding dengan @
- Destrukturisasi