Menu
Coddy logo textTech

Struct'lara Genel Bakış

Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası. Ders 21 / 66.

Artık struct'ların ne olduğunu anladığına göre, onları gerçekten nasıl oluşturacağını ve kullanacağını öğrenelim. Bu, iki adımı içerir: önce struct'ın yapısını tanımlamak, ardından onun instance'larını oluşturmak.

Bir struct tanımlamak için struct anahtar sözcüğünü, ardından struct'ın adını ve alanlarını süslü parantezler içinde kullanırsın. Her alanın bir adı ve türü vardır:

struct User {
    username: String,
    active: bool,
}

Bu, iki alana sahip bir User struct'ı için bir şablon oluşturur: String türünde username ve bool türünde active.

Adlandırma kuralı: Rust'ta struct adları PascalCase (UpperCamelCase olarak da adlandırılır) kullanmalıdır; bu, her kelimenin büyük harfle başlaması anlamına gelir. Örneğin User, ProductItem veya ShoppingCart. Bu kurala uymazsan Rust seni uyarır.

Bir struct tanımladıktan sonra, her alan için değerleri belirterek onun örneklerini oluşturabilirsiniz:

let user1 = User {
    username: String::from("alice"),
    active: true,
};

Her alan adını, iki nokta üst üste işaretini ve değerini içeren süslü parantezlerin ardından struct adını sağladığını fark et. Alanların sırasının tanımlama sırasıyla eşleşmesi gerekmez.

Bir struct instance'ının alanlarına erişmek için nokta gösterimini kullan: instance adının ardından bir nokta ve alan adını yaz:

println!("Username: {}", user1.username);
println!("Active: {}", user1.active);

Burada user1.username, user1 öğesinin username alanına erişir ve user1.active, active alanına erişir. Bu alan değerlerini normal bir değişkeni kullanacağınız her yerde kullanabilirsiniz.

challenge icon

Görev

Kolay

Üç girdi alacaksınız: bir Product adı, ondalık sayı olarak bir fiyat ve tamsayı olarak bir stock quantity. Üç alana sahip bir Product struct'ı tanımlayın: String türünde name, f64 türünde price ve i32 türünde stock. Ardından bu struct'ın bir örneğini input values kullanarak oluşturun ve product information yazdırın.

Gereksinimler:

  • Şu alanlara sahip bir Product struct'ı tanımlayın: name: String, price: f64 ve stock: i32
  • İlk input'u Product adı olarak okuyun
  • İkinci input'u okuyun ve price için f64 türüne dönüştürün
  • Üçüncü input'u okuyun ve stock quantity için i32 türüne dönüştürün
  • Bu values ile Product struct'ının bir instance'ını oluşturun
  • Product information'ı aşağıda gösterilen exact format'ta yazdırın

Girdi:

  • İlk line: Product adı (örneğin, Laptop)
  • İkinci line: Ondalık sayı olarak price (örneğin, 999.99)
  • Üçüncü line: Tamsayı olarak stock quantity (örneğin, 15)

Çıktı:

  • İlk line: Product: [name]
  • İkinci line: Price: $[price]
  • Üçüncü line: Stock: [quantity]

Kendin dene

use std::io;

// TODO: Product struct'ınızı burada tanımlayın


fn main() {
    // Ürün adını oku
    let mut name = String::new();
    io::stdin().read_line(&mut name).expect("Failed to read line");
    let name = name.trim().to_string();
    
    // Fiyatı oku
    let mut price_input = String::new();
    io::stdin().read_line(&mut price_input).expect("Failed to read line");
    let price: f64 = price_input.trim().parse().expect("Failed to parse price");
    
    // Stok miktarını oku
    let mut stock_input = String::new();
    io::stdin().read_line(&mut stock_input).expect("Failed to read line");
    let stock: i32 = stock_input.trim().parse().expect("Failed to parse stock");
    
    // TODO: Girdi değerlerini kullanarak bir Product struct örneği oluşturun
    
    
    // TODO: Ürün bilgilerini istenen formatta yazdırın
    
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Logic & Flow bölümündeki tüm dersler

Kendi başına pratik yap: Online Rust derleyicisi