Default Özelliği (Trait)

Default özelliği (trait), bir tür için varsayılan bir değer üretir.

#[derive(Debug, Default)]
struct Derived {
    x: u32,
    y: String,
    z: Implemented,
}

#[derive(Debug)]
struct Implemented(String);

impl Default for Implemented {
    fn default() -> Self {
        Self("Evliya Çelebi".into())
    }
}

fn main() {
    let default_struct = Derived::default();
    dbg!(default_struct);

    let almost_default_struct =
        Derived { y: "Y ayarlandı!".into(), ..Derived::default() };
    dbg!(almost_default_struct);

    let nothing: Option<Derived> = None;
    dbg!(nothing.unwrap_or_default());
}
This slide should take about 5 minutes.
  • Doğrudan gerçekleştirilebilir (implement) veya #[derive(Default)] aracılığıyla türetilebilir.
  • Türetilmiş bir gerçekleştirme (implementation), tüm alanların varsayılan değerlerine ayarlandığı bir değer üretecektir.
    • Bu, yapıdaki (struct) tüm türlerin de Default’u gerçekleştirmesi (implement) gerektiği anlamına gelir.
  • Standart Rust türleri genellikle Default’u makul değerlerle (ör. 0, "", vb.) gerçekleştirir (implement).
  • Kısmi yapı ilklendirmesi (partial struct initialization), default özelliği ile güzel çalışır.
  • Rust standart kütüphanesi, türlerin Default’u gerçekleştirebileceğinin (implement) farkındadır ve onu kullanan kullanışlı metotlar sağlar.
  • .. sözdizimine yapı güncelleme sözdizimi (struct update syntax) denir.