Özet - Bir Kitap Struct'ı Oluşturun
Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası — ders 26 / 66.
Görev
KolayDört girdi alacaksınız: bir kitap başlığı, bir yazar adı, bir yayın yılı (tam sayı olarak) ve bir sayfa sayısı (tam sayı olarak). Dört alana sahip bir Book yapısı (struct) tanımlayın: String türünde title, String türünde author, i32 türünde year ve i32 türünde pages. Giriş değerlerini kullanarak bu yapının bir örneğini oluşturun ve kitap bilgilerini yazdırın.
Gereksinimler:
- Şu alanlara sahip bir
Bookyapısı tanımlayın:title: String,author: String,year: i32vepages: i32 - İlk girdiyi kitap başlığı olarak okuyun
- İkinci girdiyi yazar adı olarak okuyun
- Üçüncü girdiyi okuyun ve yayın yılı için
i32türüne dönüştürün - Dördüncü girdiyi okuyun ve sayfa sayısı için
i32türüne dönüştürün - Bu değerlerle
Bookyapısının bir örneğini oluşturun - Kitap bilgilerini aşağıda gösterilen tam formatta yazdırın
Girdi:
- İlk satır: Kitap başlığı (örneğin,
The Rust Programming Language) - İkinci satır: Yazar adı (örneğin,
Steve Klabnik) - Üçüncü satır: Tam sayı olarak yayın yılı (örneğin,
2018) - Dördüncü satır: Tam sayı olarak sayfa sayısı (örneğin,
552)
Çıktı:
- İlk satır:
Book: [title] - İkinci satır:
Author: [author] - Üçüncü satır:
Year: [year] - Dördüncü satır:
Pages: [pages]
Kendin dene
use std::io;
// TODO: Burada title, author, year ve pages alanlarına sahip Book struct'ını tanımlayın
fn main() {
// Kitap başlığını oku
let mut title = String::new();
io::stdin().read_line(&mut title).expect("Failed to read line");
let title = title.trim().to_string();
// Yazar adını oku
let mut author = String::new();
io::stdin().read_line(&mut author).expect("Failed to read line");
let author = author.trim().to_string();
// Yayın yılını oku
let mut year_input = String::new();
io::stdin().read_line(&mut year_input).expect("Failed to read line");
let year: i32 = year_input.trim().parse().expect("Failed to parse year");
// Sayfa sayısını oku
let mut pages_input = String::new();
io::stdin().read_line(&mut pages_input).expect("Failed to read line");
let pages: i32 = pages_input.trim().parse().expect("Failed to parse pages");
// TODO: Giriş değerlerini kullanarak Book struct'ının bir örneğini oluşturun
// TODO: Kitap bilgilerini istenen formatta 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