İsimli Yapılar
C ve C++ dillerindeki gibi Rust'ın da özel (kullanıcı tanımlı) yapılara desteği vardır:
struct Person { name: String, age: u8, } fn describe(person: &Person) { println!("{} {} yaşında", person.name, person.age); } fn main() { let mut peter = Person { name: String::from("Peter"), age: 27 }; describe(&peter); peter.age = 28; describe(&peter); let name = String::from("Avery"); let age = 39; let avery = Person { name, age }; describe(&avery); let jackie = Person { name: String::from("Jackie"), ..avery }; describe(&jackie); }
This slide should take about 10 minutes.
Önemli Noktalar:
- Yapılar C veya C++'daki gibi çalışır.
- C++'daki gibi ve C'den farklı olarak, bir türü tanımlamak için typedef'e gerek yoktur.
- C++'dan farklı olarak yapılar arasında kalıtım (inheritance) yoktur.
- Bu, insanlara farklı yapı türleri olduğunu duyurmak için iyi bir zaman olabilir.
- Sıfır boyutlu (zero-sized) yapılar (örn. `struct Foo;'), bir özelliği (trait) bazı türlere uygularken kullanılabilir, ancak değerin kendisinde saklamak istediğiniz herhangi bir veri yoktur.
- Sonraki slaytta alan adları (field names) önemli olmadığında kullanılan Demet (Tupe) yapıları tanıtılacaktır.
- Eğer zaten doğru adlara sahip değişkenleriniz varsa, o zaman yapıyı bir kısaltma kullanarak oluşturabilirsiniz.
..avery
sözdizimi, eski yapıdaki alanların çoğunu, hepsini açıkça yazmamıza gerek kalmadan kopyalamamıza olanak tanır. Bu her zaman son öğe olmalıdır.