تایپهای وابسته
تایپهای مرتبط تایپهایی جایگزین هستند که توسط پیادهسازی trait تأمین میشوند.
#[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))); }
-
تایپهای مرتبط گاهی اوقات "تایپهای خروجی" نیز نامیده میشوند. نکته کلیدی این است که پیادهساز، نه فراخواننده، این تایپ را انتخاب میکند.
-
بسیاری از traitهای کتابخانه استاندارد دارای نوعهای مرتبط هستند، از جمله اپراتورهای حسابی و
Iterator
.