Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

İlgili Verileri Yapılandırmak İçin Struct Kullanımı

Bir struct (yapı), anlamlı bir bütün oluşturan ilişkili birden fazla değeri bir araya getirip isimlendirmenizi sağlayan özel bir veri türüdür. Nesne yönelimli bir programlama diline aşinaysanız struct, bir nesnenin veri niteliklerine benzer. Bu bölümde, şimdiye kadar öğrendiklerinizden yola çıkarak demet (tuple) türü ile struct’ları karşılaştıracak, benzerlik ve farklarını ortaya koyacak ve verileri gruplandırmak için struct’ların ne zaman daha iyi bir seçenek olduğunu göstereceğiz.

Struct’ların nasıl tanımlanacağını ve örnekleneceğini inceleyeceğiz. Bir struct türüne ait davranışları belirlemek için ilişkili fonksiyonların (associated functions) —özellikle de metot olarak adlandırılan ilişkili fonksiyon türünün— nasıl tanımlanacağını ele alacağız. Struct’lar ve Bölüm 6’da göreceğimiz enum’lar, programınızın ele aldığı probleme özgü yeni türler oluşturmanın temel yapı taşlarıdır; bu türler sayesinde Rust’ın derleme zamanı tür denetiminden tam anlamıyla yararlanabilirsiniz.

Not: C#, Java veya Python gibi nesne yönelimli dillerden geliyorsanız Rust’ta class anahtar kelimesinin ve klasik sınıf kalıtımı mekanizmasının bulunmadığını fark edeceksiniz. Rust, verinin bellekteki yapısını (struct tanımı) ve o veri üzerinde çalışan davranışları (impl blokları içindeki metotlar ve ilişkili fonksiyonlar) birbirinden net biçimde ayırır; türler arası ortak davranışları ise Bölüm 10’da göreceğimiz trait sistemiyle sağlar. Üstelik ham verileri anlamlı struct türleri altında gruplamak çalışma zamanında ek bir bellek ya da hız maliyeti getirmez; buna karşılık verilere anlamlı alan adları kazandırır. Ayrıca farklı kavramlar için ayrı struct türleri tanımlamak, bu türlerin yanlışlıkla birbirinin yerine kullanılmasını derleme aşamasında engeller; aynı türdeki iki alanın değerini karıştırmayı ise derleyici her zaman saptayamaz.