İlişkili Türler
İlişkili türler (associated types), özellik (trait) gerçekleştirimi tarafından sağlanan yer tutucu (placeholder) türlerdir.
#[derive(Debug)] struct Meters(i32); #[derive(Debug)] struct MetersSquared(i32); trait Multiply { type Output; fn multiply(&self, other: &Self) -> Self::Output; } impl Multiply for Meters { type Output = MetersSquared; fn multiply(&self, other: &Self) -> Self::Output { MetersSquared(self.0 * other.0) } } fn main() { println!("{:?}", Meters(10).multiply(&Meters(20))); }
-
İlişkili türler (associated types) bazen “çıktı türleri (output types)” olarak da adlandırılır. Anahtar gözlem, bu türü çağıranın değil, gerçekleştirenin (implementer) seçmesidir.
-
Aritmetik operatörler ve
Iteratorda dahil olmak üzere birçok standart kütüphane özelliğinin (traits) ilişkili türleri vardır.