Apa itu 'Option'?
Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 35 dari 66.
Dalam pemrograman, kamu sering menghadapi situasi ketika suatu nilai mungkin ada atau mungkin tidak ada. Misalnya, pencarian item dalam list mungkin menemukan item tersebut, atau item itu mungkin tidak ada sama sekali. Bahasa pemrograman tradisional sering menggunakan nilai khusus seperti null atau -1 untuk menyatakan "tidak ada", tetapi pendekatan ini dapat menyebabkan bug dan crash.
Rust menggunakan pendekatan berbeda dengan enum Option<T>. Ini adalah tipe bawaan yang secara eksplisit mewakili kemungkinan tidak adanya nilai. Alih-alih menebak apakah suatu nilai ada, Rust mengharuskan kamu menangani kedua kasus sejak awal.
enum Option memiliki tepat dua varian:
Some(value) // Berisi nilai
None // Tidak berisi nilaiKetika suatu fungsi mungkin tidak mengembalikan nilai, fungsi tersebut mengembalikan Option. Jika ada nilai yang dikembalikan, nilai itu dibungkus dalam Some. Jika tidak ada nilai, fungsi tersebut mengembalikan None.
Ini membuat kemungkinan ketiadaan dinyatakan secara eksplisit dalam sistem tipe, sehingga kamu tidak sengaja menggunakan nilai yang tidak ada.
Kamu sudah melihat Option digunakan pada method .get() milik hash map. Method ini mengembalikan Some(&value) jika sebuah kunci ada, atau None jika tidak ada. Pola ini muncul di seluruh Rust sehingga kodemu menjadi lebih aman dan lebih mudah diprediksi.
Coba sendiri
Pelajaran ini tidak memiliki tantangan kode.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Alur Kontrol Lanjutan
Ekspresi 'match'Mencocokkan Beberapa NilaiMencocokkan RentangEkspresi 'if let'Perulangan sebagai EkspresiRangkuman, Parser Perintah Sederhana4Mengelompokkan Data dengan Struct
Apa Itu Struct?Ringkasan StructMengakses Field StructStruct yang Dapat DiubahStruct sebagai Parameter FungsiStruct TupleRangkuman: Buat Struct Buku2Pengantar Vektor
Apa Itu Vektor?Membuat VektorMenambahkan Elemen dengan pushMengakses Elemen VektorMelakukan Iterasi pada VektorIterasi MutableMenghapus ElemenRangkuman: Pelacak Skor Dasar5Pasangan Kunci-Nilai dengan Hash Map
Apa Itu Hash Map?Membuat Hash MapMenyisipkan Pasangan Kunci-NilaiMengakses NilaiMenelusuri Hash MapMemperbarui NilaiMenghapus PasanganRangkuman: Penghitung Kata8Proyek: Inventaris Barang Sederhana
Menyiapkan ProyekMenambahkan BarangMemeriksa StokMenjual BarangMenyatukan Semuanya3Daftar Tugas Baris Perintah
Penyiapan ProyekMenambahkan TugasMelihat Semua TugasMenghapus TugasKode Akhir6Menangani Ketiadaan dengan 'Option'
Apa itu 'Option'?Menggunakan 'match' dengan 'Option'is_some() dan is_none()Membuka bungkus 'Option'Metode expectMemberikan Nilai Default: unwrap_orRangkuman: Menemukan ElemenLatihan sendiri: Compiler Rust online