Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

Rust'ı güçlü ve daha çekici kılan en önemli özelliklerden biri, yapıları desteklemesidir. Yapılar, ilgili verileri gruplamak için bileşik veri türleridir. Kod organizasyonunu iyileştiren ve veri işlemeyi kolaylaştıran adlandırılmış alanlarla özel veri türleri tanımlamanıza olanak tanırlar.

Yapıları, kullanıcı tanımlı veri türleri ve yapılandırmalar dahil olmak üzere çeşitli nesneleri temsil etmek için kullanabilirsiniz. Yapılar, diğer birçok veri yapısından daha esnektir. İlgili verileri kapsülleme yetenekleri, gerçek dünyadaki nesnelerin daha mantıklı bir modelini oluşturdukları için onları kullanışlı kılar.

Yapıları ve Yapı Alanlarını Tanımlama

kullanarak bir yapı tanımlayacaksınız. yapı anahtar sözcük ve ardından yapı için bir ad. Yapının alan adlarını ve bunların Pas veri türleri bir çift kaşlı ayraç içinde.

instagram viewer
yapıKişi {
isim: Sicim,
yaş: u8,
is_student: bool,
}

Bu Kişi struct üç alana sahiptir. bu isim alan bir dizedir, yaş alan, işaretsiz 8 bitlik bir tamsayıdır ve is_student alan bir booledir.

Yapı tanımından sonra yapı örnekleri oluşturmak için yapı değişmezlerini kullanabilirsiniz. Yapı hazır değerleri, bir yapının alanlarının değerlerini belirtir.

izin vermek kişi = Kişi {
isim: Sicim::itibaren("John"),
yaş: 27,
is_student: doğru,
};

bu kişi değişken, örneğinin bir örneğidir Kişi struct, bir struct hazır bilgisiyle oluşturuldu. Bu hazır bilgi, yapının tüm alanlarını karşılık gelen veri tipindeki değerlerle başlatır.

Yapı Oluşturmak için Yapıcıları Kullanma

Bir yapının örneğini oluşturmak için yapıcı işlevi de kullanabilirsiniz.

ima Kişi {
// "ad", "yaş" alan bir "yeni" yapıcı işlevi tanımlayın ve
// "is_student" parametreleri
fnyeni(isim: Sicim, yaş: u8, is_student: bool) -> öz {
// "Kişi" yapısının yeni bir örneğini oluşturun ve alanlarını ilklendirin
// sağlanan değerlerle
öz {
isim,
yaş,
is_student,
}
}
}

// "Kişi" yapısının "yeni" yapıcı işlevini çağırın ve
// sonuç örneği `person` olarak
izin vermek kişi = Kişi:: yeni(Sicim::itibaren("John"), 27, doğru);

Yukarıdaki program, için bir yapıcı tanımlar. Kişi ile yapı ima anahtar kelime. bu yeni yapıcı, yapı alanlarını bağımsız değişken olarak alır ve ilk değerlerle yapının yeni bir örneğini döndürür.

oluşturabilirsiniz Kişi ile örnek yeni yapıcı, uygun argümanları iletmek.

Yapı Alanlarına Erişme ve Değiştirme

Nokta gösterimi kullanarak yapı alanlarına erişebilir ve bunları değiştirebilirsiniz. Siz sadece noktayı kullanın (.) operatörü ve ardından değerine erişmek veya değerini değiştirmek için alanın adı.

// bir Kişi yapısı bildir
yapıKişi {
isim: Sicim,
yaş: u8,
is_student: bool,
}

fnana() {
// bir yapı başlat
izin vermekmut kişi = Kişi {
isim: Sicim::itibaren("John"),
yaş: 27,
is_student: doğru,
};

// yapının adını ve yaş alanlarını yazdır
yazdır!("İsim: {}", Kişi Adı);
yazdır!("Yaş: {}", kişi.yaş);

// is_student alanını değiştir
kişi.is_student = YANLIŞ;

yazdır!("Öğrenci: {}", kişi.is_student);
}

Program bir yapı oluşturur, yapıyı başlatır, isim, Ve yaş alanları değiştirir ve is_student alanı yazdırmadan önce alan.

Yapılar için Yöntem Bildirme

Farklı C yapıları, bir örnek üzerinde çalışan Rust yapılarında yöntemler tanımlayabilirsiniz. Yöntemler, erişim ve değişiklik için bir yapıya başvuru alan işlevlerdir. Bir yapının yöntemlerini çağırmak ve işlevlerine erişmek için nokta gösterimini de kullanabilirsiniz.

Yapılar için yöntemleri şu şekilde bildirebilir ve bu yöntemleri işlemleri gerçekleştirmek için kullanabilirsiniz:

yapıKişi {
isim: Sicim,
yaş: u8,
is_student: bool,
}

ima Kişi {
fnMerhaba de(&öz) {
yazdır!("Merhaba, benim adım {} ve {} yaşındayım.", öz.isim,
öz.yaş);
}

fndoğum_günü var(&mutöz) {
öz.yaş += 1;
}
}

fnana() {
izin vermekmut kişi = Kişi {
isim: Sicim::itibaren("John"),
yaş: 27,
is_student: doğru,
};

kişi.say_merhaba();

kişi.have_birthday();

yazdır!("Yeni yaş: {}", kişi.yaş);
}

Program için iki yöntem tanımlar Kişi yapı bu Merhaba de yöntem referans alır öz ve kişinin adını ve yaşını içeren bir selamlama yazdırır. bu doğum_günü var yöntem değişken bir referans alır öz ve kişinin yaşını artırır.

Rust'ın Sahiplik Modeli Bellek Yönetimini Optimize Eder

Yapılar, bir tür minimal sınıf eşdeğeri gibi davranan çok yönlü veri yapılarıdır.

Diğer Rust veri yapılarında olduğu gibi, yapı değişkenleriyle çalışırken Rust'ın sahiplik kurallarına uymalısınız. Sahiplik modeli, boş ve sarkan işaretçiler gibi yaygın sorunları önleyerek programlarınızdaki belleği verimli bir şekilde yönetmenizi sağlar.