Struct Alanlarına Erişme
Coddy'nin Rust Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 22 / 66.
Bir yapı örneği oluşturduktan sonra, içinde depolanan değerleri almanın bir yoluna ihtiyacın vardır. Rust, bir yapının içindeki ayrı alanlara erişmek için nokta gösterimini kullanır.
Söz dizimi basittir: struct örneğinin adını, ardından bir nokta ve sonra erişmek istediğin alanın adını yazarsın:
let product = Product {
name: String::from("Laptop"),
price: 999,
};
println!("Product: {}", product.name);
println!("Price: ${}", product.price);Bu nokta notasyonu, diğer programlama dillerindeki özelliklere erişmekle tam olarak aynı şekilde çalışır. Erişilen değerleri ifadelerde kullanabilir, değişkenlere atayabilir veya fonksiyonlara aktarabilirsiniz; bunlar tam olarak o türdeki diğer tüm değerler gibi davranırlar.
Görev
KolayÜç girdi alacaksınız: bir araba modelinin adı, arabanın yılı (bir tamsayı olarak) ve kilometresi (bir tamsayı olarak). Üç alana sahip bir Car yapısı tanımlayın: String türünde model, i32 türünde year ve i32 türünde mileage. Girdi değerlerini kullanarak bu yapının bir örneğini oluşturun, ardından her alana erişip yazdırın.
Gereksinimler:
- Şu alanlara sahip bir
Caryapısı tanımlayın:model: String,year: i32vemileage: i32 - İlk girdiyi araba modeli olarak okuyun
- İkinci girdiyi okuyun ve yıl için
i32türüne dönüştürün - Üçüncü girdiyi okuyun ve kilometre için
i32türüne dönüştürün - Bu değerlerle
Caryapısının bir örneğini oluşturun - Her alana erişmek için nokta gösterimini kullanın ve araba bilgilerini aşağıda gösterilen tam biçimde yazdırın
Girdi:
- İlk satır: Araba modeli (ör.
Tesla Model 3) - İkinci satır: Tamsayı olarak yıl (ör.
2022) - Üçüncü satır: Tamsayı olarak kilometre (ör.
15000)
Çıktı:
- İlk satır:
Car: [model] - İkinci satır:
Year: [year] - Üçüncü satır:
Mileage: [mileage] km
Kendin dene
use std::io;
// TODO: Burada model, year ve mileage alanlarına sahip Car struct'ını tanımlayın
fn main() {
// Araba modelini oku
let mut model = String::new();
io::stdin().read_line(&mut model).expect("Failed to read line");
let model = model.trim().to_string();
// Yılı 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("Invalid year");
// Kilometreyi oku
let mut mileage_input = String::new();
io::stdin().read_line(&mut mileage_input).expect("Failed to read line");
let mileage: i32 = mileage_input.trim().parse().expect("Invalid mileage");
// TODO: Girdi değerlerini kullanarak Car struct'ının bir örneğini oluşturun
// TODO: Her bir alana erişin ve istenen formatta yazdırın
// Car: [model]
// Year: [year]
// Mileage: [mileage] km
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış 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 BulmaKendi başına pratik yap: Online Rust derleyicisi