Pernyataan Match
Termasuk bagian Dasar-Dasar dalam perjalanan Rust di Coddy. Pelajaran 26 dari 75.
Ekspresi match memungkinkan kamu membandingkan suatu nilai dengan serangkaian pola dan menjalankan kode berdasarkan pola yang cocok.
Berikut struktur dasar ekspresi match:
match variable {
pattern1 => expression1,
pattern2 => expression2,
// ... pola lainnya
_ => default_expression,
}Kata kunci match diikuti oleh nilai yang ingin kamu uji.
Setiap cabang dari match terdiri dari pola yang diikuti => dan kode yang dijalankan.
Garis bawah _ adalah kasus default yang cocok dengan apa pun yang tidak cocok dengan pola lain.
Berikut contohnya:
let day = 3;
let day_name = match day {
1 => "Monday",
2 => "Tuesday",
3 => "Wednesday",
// ... pola lainnya,
_ => "Invalid day",
};Untuk beberapa baris kode dalam sebuah arm, gunakan blok:
let day = 3;
let day_name = match day {
1 => {
println!("First day of the week!");
"Monday"
},
2 => "Tuesday",
// ... kasus lainnya
_ => "Invalid day",
};Kamu dapat mencocokkan beberapa pola menggunakan |:
let day = 3;
let day_type = match day {
1 | 2 | 3 | 4 | 5 => "Weekday",
6 | 7 => "Weekend",
_ => "Invalid day",
};Ekspresi match di Rust harus menyeluruh, artinya harus mencakup semua nilai yang mungkin. Compiler akan memeriksanya untukmu.
Tantangan
PemulaBuat program yang menerima nomor bulan (1 untuk Januari, 2 untuk Februari, dan seterusnya), lalu mencetak musim yang sesuai. Gunakan pernyataan match untuk logikanya.
Musim dan bulan yang sesuai adalah:
"Winter": Desember (12), Januari (1), Februari (2)"Spring": Maret (3), April (4), Mei (5)"Summer": Juni (6), Juli (7), Agustus (8)"Autumn": September (9), Oktober (10), November (11)
Tetapkan string bahasa Inggris yang persis ini ke season, agar program mencetak, misalnya, status = Spring.
Coba sendiri
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let month: i32 = input.trim().parse().unwrap();
// Tulis kodemu di bawah ini
let season =
// Jangan ubah baris di bawah ini
println!("status = {}", season);
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 1
Operator AritmetikaOperator ModuloPintasan AritmetikaOperator PerbandinganPerbandingan String7Input/Output Dasar
Menampilkan teks di konsolMembaca input penggunaUlasan: Hingga 120Ulasan: Benar atau Salah5Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Ulasan: Logika SederhanaOperator Logika Bagian 311Fungsi
Mendeklarasikan FungsiParameter dan ArgumenNilai KembalianBeberapa Nilai KembalianRingkasan: Fungsi SigmaRingkasan: Fungsi Validasi14Iterasi pada Array
Panduan RangeFor Loop yang DisempurnakanBorrow dalam LoopOperasi Umum pada Array3Variabel Bagian 2
Deklarasi TipeKonvensi PenamaanInferensi TipeRangkuman: Inisialisasi VariabelKonversi Tipe9Perulangan
For untuk Menelusuri UrutanWhile LoopBreakContinueNested LoopLabel LoopInfinite LoopRingkasan: Input DinamisLatihan sendiri: Compiler Rust online