Özet - Güvenli Bölme Fonksiyonu
Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası — ders 48 / 66.
Görev
Kolayİki girdi alacaksınız. İlk girdi bölüneni temsil eden bir sayı, ikinci girdi ise böleni temsil eden bir sayıdır. İki f64 parametresi alan ve bir Result<f64, &'static str> döndüren bir safe_divide fonksiyonu oluşturun. Fonksiyon, bölen sıfır olduğunda Err("Cannot divide by zero"), aksi takdirde bölme sonucuyla birlikte Ok döndürmelidir. Sonucu işlemek ve uygun çıktıyı yazdırmak için bir match ifadesi kullanın.
Gereksinimler:
- İlk girdiyi (bölünen) okuyun ve boşlukları temizleyin
- İlk girdiyi
f64türüne dönüştürün - İkinci girdiyi (bölen) okuyun ve boşlukları temizleyin
- İkinci girdiyi
f64türüne dönüştürün - İki
f64parametresi alan veResult<f64, &'static str>döndüren birsafe_dividefonksiyonu oluşturun - Fonksiyonun içinde, bölenin
0.0olup olmadığını kontrol edin:- Eğer öyleyse,
Err("Cannot divide by zero")döndürün - Değilse,
Ok(dividend / divisor)döndürün
- Eğer öyleyse,
- Fonksiyonu ayrıştırılan iki sayı ile çağırın
Resultdeğerini işlemek için birmatchifadesi kullanınOk(value)kolunda şunu yazdırın:Division result: [value]Err(error)kolunda şunu yazdırın:Error: [error]
Girdi:
- İlk satır: Bölüneni temsil eden bir sayı (örneğin,
20.0) - İkinci satır: Böleni temsil eden bir sayı (örneğin,
4.0)
Çıktı:
- Bölme başarılıysa:
Division result: [result] - Sıfıra bölme durumunda:
Error: Cannot divide by zero
Kendin dene
use std::io;
// TODO: safe_divide fonksiyonunu burada oluşturun
// fn safe_divide(dividend: f64, divisor: f64) -> Result<f64, &'static str> {
// Kodunuz buraya
// }
fn main() {
// İlk girdiyi oku (bölünen)
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");
// İkinci girdiyi oku (bölen)
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: safe_divide fonksiyonunu çağırın ve Result'ı işlemek için match kullanın
// Sonuca göre uygun çıktıyı yazdırın
}Logic & Flow bölümündeki tüm dersler
1İleri Seviye Kontrol Akışı
'match' İfadesiBirden Çok Değeri EşleştirmeAralıkları Eşleştirme'if let' İfadesiİfade Olarak DöngülerÖzet - Basit Komut Ayrıştırıcı4Struct'lar ile Verileri Gruplama
Struct Nedir?Struct'lara Genel BakışStruct Alanlarına ErişmeMutable Struct'larFonksiyon Parametresi Olarak Struct'larTuple Struct'larÖzet - Bir Kitap Struct'ı Oluşturun7'Result' ile Hata Yönetimi
'Result' Nedir?'Result' ile 'match' Kullanımıis_ok() ve is_err()Kısayollar: unwrap ve expectSoru İşareti Operatörü '?'String'leri Sayılara DönüştürmeÖzet - Güvenli Bölme Fonksiyonu10Closures ve Anonim Fonksiyonlar
Closure Nedir?Basit Bir Closure TanımlamaParametreli Closure'larOrtamı YakalamakÖzet - Basit Toplayıcı Closure2Vektörlere Giriş
Vektör Nedir?Vektör Oluşturmapush ile Eleman EklemeVektör Elemanlarına ErişmeVektör Üzerinde YinelemeDeğiştirilebilir YinelemeEleman KaldırmaÖzet - Temel Skor Takipçisi5Hash Map'ler ile Anahtar-Değer Çiftleri
Hash Map Nedir?Bir Hash Map OluşturmaAnahtar-Değer Çiftleri EklemeDeğerlere ErişmeBir Hash Map Üzerinde GezinmeBir Değeri GüncellemeBir Çifti KaldırmaÖzet - Kelime Sayacı11Son Meydan Okumalar
Özet - Benzersiz ÖğelerÖzet - Kullanıcı Profili DoğrulayıcıÖzet - Not Özetleyici3Komut Satırı Yapılacaklar Listesi
Proje KurulumuGörev EklemeTüm Görevleri GörüntülemeGörev SilmeFinal Kodu6'Option' ile Yokluğu Yönetme
'Option' Nedir?'Option' ile 'match' Kullanımıis_some() ve is_none()Bir 'Option' Değerini Açmak (Unwrapping)expect MetoduVarsayılan Değer Sağlama: unwrap_orÖzet - Bir Eleman Bulma9String Dilimleri ve Daha Fazlası
String ve &strString Dilimleri OluşturmaFonksiyon Parametresi Olarak DilimlerDiğer DilimlerÖzet - İlk Kelimeyi Bulma