CodeBlanks Logo Icon CodeBlanks

Struct tanımı

struct ile alanlı yapı tanımlamayı öğrenirsin.

Struct tanımı

Struct, ilişkili verileri adlandırılmış alanlar altında bir araya getiren özel bir türdür. Her alanın bir adı ve türü vardır:

struct Oyuncu {
    ad: String,
    puan: u32,
    aktif: bool,
}

Tür adları PascalCase, alan adları snake_case yazılır. Tanım yalnızca şablondur; bellek, bir örnek (instance) oluşturulunca ayrılır.

Alanları değiştirmek

Bir alanı değiştirmek için örneğin tamamı mut olmalıdır; Rust tek tek alanları değiştirilebilir işaretlemeye izin vermez:

let mut o = Oyuncu {
    ad: String::from("Ece"),
    puan: 120,
    aktif: true,
};
o.puan += 30;
println!("{} {}", o.ad, o.puan);   // Ece 150

Uygulama İlk struct

ad: String ve puan: u32 alanlı bir Oyuncu struct'ı tanımla. ad = "Ece", puan = 120 olan bir örnek oluştur ve iki alanı boşlukla ayırarak yazdır.

Başlangıç kodu

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
struct Oyuncu {
    ad: String,
    puan: u32,
}

fn main() {
    let o = Oyuncu {
        ad: String::from("Ece"),
        puan: 120,
    };
    println!("{} {}", o.ad, o.puan);
}

Beklenen çıktı

Ece 120

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir struct alanına nasıl erişilir?

  • Köşeli parantezle: o["puan"]
  • Ok ile: o->puan
  • İki nokta ile: o::puan
  • Nokta ile: o.puan Doğru cevap

Açıklama: Rust alanlara her zaman nokta ile erişir; referans üzerinden de otomatik çözme yapar.

2 Alan türü

Soru
struct Oyuncu {
    ad: String,
    puan: ____,
}
Cevap
struct Oyuncu {
    ad: String,
    puan: u32,
}

Açıklama: Puan negatif olmayan bir tam sayıdır; u32 uygun türdür.

3 Kavram ve örnek

Kavram Anlamı
struct Oyuncu Tür tanımı
ad: String Alan
o.puan Alan erişimi
let mut o Değiştirilebilir örnek

Başlangıç bölümündeki tüm dersler

16 Proje: Yapılacaklar listesi

  1. Görev modeli
  2. Ekleme
  3. Listeleme
  4. İşaretleme
  5. Komut okuma