CodeBlanks Logo Icon CodeBlanks

Özet - Yapılar

Alanları ve örnek oluşturmayı birleştirerek bir nokta yapısı yazarsın.

Yapılar özeti

Üç struct biçimi vardır: adlı alanlı (struct Oyuncu { ad: String }), tuple struct (struct Renk(u8, u8, u8);) ve unit-like (struct Sessiz;). Örnek oluştururken tüm alanlar verilir; alan kısaltması ve ..kaynak güncelleme sözdizimi yazımı kısaltır. Değiştirmek için örneğin tamamı mut olmalıdır. #[derive(Debug)] ile {:?} çıktısı alınır.

Struct ve fonksiyonlar

Struct'ı işleyen bir fonksiyon, parametreyi genellikle referans olarak alır:

#[derive(Debug)]
struct Kutu { en: u32, boy: u32 }

fn alan(k: &Kutu) -> u32 {
    k.en * k.boy
}

Bu fonksiyon yalnızca Kutu ile çalıştığı halde serbest durur. Bir sonraki grupta onu impl bloğuna taşıyıp metot yapacağız: k.alan().

Uygulama Kutu alanı

#[derive(Debug)] ile Kutu { en: u32, boy: u32 } tanımla ve fn alan(k: &Kutu) -> u32 yaz. Kutu { en: 3, boy: 4 } için Kutu { en: 3, boy: 4 } alan=12 çıktısını üret.

Başlangıç kodu

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

Örnek çözüm

main.rs
#[derive(Debug)]
struct Kutu {
    en: u32,
    boy: u32,
}

fn alan(k: &Kutu) -> u32 {
    k.en * k.boy
}

fn main() {
    let k = Kutu { en: 3, boy: 4 };
    println!("{:?} alan={}", k, alan(&k));
}

Beklenen çıktı

Kutu { en: 3, boy: 4 } alan=12

Soru ve cevaplar

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

1 Bir fonksiyon struct'ı yalnızca okuyacaksa parametre nasıl olmalı?

  • k: &mut Kutu
  • mut k: Kutu
  • k: &Kutu Doğru cevap
  • k: Kutu

Açıklama: Referans almak sahipliği çağıranda bırakır; kutu fonksiyondan sonra da kullanılabilir.

2 Örnek oluştur

Soru
let k = Kutu ____;
Cevap
let k = Kutu { en: 3, boy: 4 };

Açıklama: Adlı alanlı struct örneği süslü parantez ve alan adlarıyla oluşturulur.

3 Grubun özeti

Kavram Anlamı
struct A { x: i32 } Adlı alanlar
struct B(i32); Tuple struct
struct C; Unit-like
B { ..a } Güncelleme sözdizimi

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