Rangkuman: Fungsi Pembagian Aman
Termasuk bagian Logika dan Alur dalam perjalanan Rust di Coddy. Pelajaran 48 dari 66.
Tantangan
MudahKamu akan menerima dua input. Input pertama adalah angka yang mewakili bilangan yang dibagi, dan input kedua adalah angka yang mewakili pembagi. Buat fungsi safe_divide yang menerima dua parameter f64 dan mengembalikan Result<f64, &'static str>. Fungsi tersebut harus mengembalikan Err("Cannot divide by zero") ketika pembagi bernilai nol, dan Ok dengan hasil pembagian jika tidak. Gunakan ekspresi match untuk menangani hasil dan mencetak output yang sesuai.
Persyaratan:
- Baca input pertama (bilangan yang dibagi) dan hapus spasi di awal serta akhir
- Parse input pertama menjadi
f64 - Baca input kedua (pembagi) dan hapus spasi di awal serta akhir
- Parse input kedua menjadi
f64 - Buat fungsi
safe_divideyang menerima dua parameterf64dan mengembalikanResult<f64, &'static str> - Di dalam fungsi, periksa apakah pembagi bernilai
0.0:- Jika ya, kembalikan
Err("Cannot divide by zero") - Jika tidak, kembalikan
Ok(dividend / divisor)
- Jika ya, kembalikan
- Panggil fungsi dengan dua angka yang sudah di-parse
- Gunakan ekspresi
matchuntuk menanganiResult - Pada arm
Ok(value), cetak:Division result: [value] - Pada arm
Err(error), cetak:Error: [error]
input:
- Baris pertama: Angka yang mewakili bilangan yang dibagi (misalnya,
20.0) - Baris kedua: Angka yang mewakili pembagi (misalnya,
4.0)
output:
- Jika pembagian berhasil:
Division result: [result] - Jika terjadi pembagian dengan nol:
Error: Cannot divide by zero
Coba sendiri
use std::io;
// TODO: Buat fungsi safe_divide di sini
// fn safe_divide(dividend: f64, divisor: f64) -> Result<f64, &'static str> {
// Tulis kodemu di sini
// }
fn main() {
// Baca input pertama (dividend)
let mut dividend_input = String::new();
io::stdin().read_line(&mut dividend_input).expect("Failed to read line");
let dividend: f64 = dividend_input.trim().parse().expect("Invalid number");
// Baca input kedua (divisor)
let mut divisor_input = String::new();
io::stdin().read_line(&mut divisor_input).expect("Failed to read line");
let divisor: f64 = divisor_input.trim().parse().expect("Invalid number");
// TODO: Panggil safe_divide dan gunakan match untuk menangani Result
// Cetak output yang sesuai berdasarkan hasilnya
}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