Mengurai string menjadi angka
Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 47 dari 66.
Salah satu penerapan Result yang paling umum di dunia nyata adalah mengonversi string menjadi angka. Di Rust, hal ini dilakukan menggunakan method .parse(), yang menunjukkan dengan tepat alasan Result ada: karena parsing bisa gagal.
method .parse() mencoba mengonversi string menjadi angka, tetapi tidak semua string mewakili angka yang valid. Misalnya, "42" dapat diuraikan menjadi angka 42, tetapi "hello" tidak dapat dikonversi menjadi angka apa pun:
let valid_number = "42";
let invalid_number = "hello";
let result1: Result = valid_number.parse();
let result2: Result = invalid_number.parse();Jika penguraian berhasil, .parse() mengembalikan Ok(number) yang berisi nilai yang telah dikonversi. Jika gagal, fungsi tersebut mengembalikan Err(error) dengan informasi tentang alasan penguraian gagal. Ini mengharuskan kamu menangani kedua kemungkinan secara eksplisit, sehingga programmu tidak mengalami crash saat menerima input yang tidak valid.
Kamu dapat menangani hasil parsing menggunakan salah satu teknik Result yang telah kamu pelajari, yaitu match untuk penanganan eksplisit, unwrap() jika kamu yakin prosesnya akan berhasil, atau operator ? untuk meneruskan error.
Tantangan
Mudah Tulis fungsi parse_to_integer yang menerima string input dan mengembalikan nilai integer hasil parsing. Jika string tidak dapat di-parsing menjadi integer yang valid, kembalikan 0 sebagai nilai default.
Gunakan method .parse() untuk mengonversi string menjadi i32, dan tangani Result dengan tepat agar menghasilkan nilai pengembalian yang aman.
Parameter:
input(String): String yang akan di-parsing menjadi integer
Nilai pengembalian: Integer hasil parsing jika berhasil, atau 0 jika parsing gagal (i32)
Coba sendiri
fn parse_to_integer(input: String) -> i32 {
// Tulis kodemu di sini
}
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 Buku7Menangani error dengan 'Result'
Apa itu 'Result'?Menggunakan 'match' dengan 'Result'is_ok() dan is_err()Cara singkat: unwrap dan expectOperator Tanda Tanya '?'Mengurai string menjadi angkaRangkuman: Fungsi Pembagian Aman2Pengantar 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 AkhirLatihan sendiri: Compiler Rust online