Тур по Rust Содержание

Полиморфизм с помощью типажей (Traits)

Rust поддерживает полиморфизм с помощью типажей. Типажи позволяют связывать набор методов со структурным типом (struct, enum).

Сначала мы определяем сигнатуры методов типажа в коде как:

trait MyTrait {
    fn foo(&self);
    ...
}

Когда структура реализует типаж, она устанавливает контракт поведения, который позволяет нам косвенно взаимодействовать со структурой через тип данного типажа (например, &dyn MyTrait) без необходимости знать реальный тип.

Методы типажа, реализованные структурой определяются в блоке реализации:

impl MyTrait for MyStruct { 
    fn foo(&self) {
        ...
    }
    ... 
}