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ığınıza göre, onları gerçekte nasıl oluşturacağınızı ve kullanacağınızı öğrenelim. Bu iki adımı içerir: önce struct'ın yapısını tanımlamak, ardından onun örneklerini (instances) oluşturmak.

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

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

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

Adlandırma kuralı: Rust'taki struct isimleri PascalCase (UpperCamelCase olarak da adlandırılır) kullanmalıdır, yani her kelime büyük harfle başlar — örneğin, User, ProductItem veya ShoppingCart. Bu kurala uymazsanız Rust sizi uyaracaktır.

Bir struct tanımladıktan sonra, her alan için değerler belirterek ondan örnekler oluşturabilirsiniz:

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

Yapı (struct) adını ve ardından her bir alan adını, iki nokta üst üste işaretini ve değerini içeren süslü parantezleri belirttiğinize dikkat edin. Alanların sırasının, tanımlama sırasıyla aynı olması gerekmez.

Bir struct örneğinin alanlarına erişmek için nokta notasyonu kullanın — örnek adını yazın, ardından bir nokta ve alan adını ekleyin:

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

Burada, user1.username, user1 nesnesinin username alanına erişir ve user1.active ise active alanına erişir. Bu alan değerlerini normal bir değişkeni kullanabileceğiniz her yerde kullanabilirsiniz.

challenge icon

Görev

Kolay

Üç girdi alacaksınız: bir ürün adı, bir fiyat (ondalık sayı olarak) ve bir stok miktarı (tam sayı olarak). Üç alanı olan bir Product yapısı (struct) tanımlayın: String türünde name, f64 türünde price ve i32 türünde stock. Ardından, girdi değerlerini kullanarak bu yapının bir örneğini oluşturun ve ürün bilgilerini yazdırın.

Gereksinimler:

  • Şu alanlara sahip bir Product yapısı tanımlayın: name: String, price: f64 ve stock: i32
  • İlk girdiyi ürün adı olarak okuyun
  • İkinci girdiyi okuyun ve fiyat için f64 türüne dönüştürün
  • Üçüncü girdiyi okuyun ve stok miktarı için i32 türüne dönüştürün
  • Bu değerlerle Product yapısının bir örneğini oluşturun
  • Ürün bilgilerini aşağıda gösterilen tam formatta yazdırın

Girdi:

  • İlk satır: Ürün adı (örneğin, Laptop)
  • İkinci satır: Ondalık sayı olarak fiyat (örneğin, 999.99)
  • Üçüncü satır: Tam sayı olarak stok miktarı (örneğin, 15)

Çıktı:

  • İlk satır: Product: [name]
  • İkinci satır: Price: $[price]
  • Üçüncü satır: 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: Giriş 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