Rust-túra Tartalomjegyzék

Polimorfizmus Trait-ek segítségével

A Rust az úgynevezett trait-ek segítségével oldja meg a polimorfizmust. Minden trait meghatároz metódusokat, amikkel a struct-okat fel lehet ruházni.

Először is meghatározzuk, hogy is néz ki a trait és az általa nyújtott metódusok paraméterei:

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

A trait-ekre gondolhatunk úgy, mint egy "szerződés," ami kimondja, hogy a trait-et megvalósító struct-okra innentől a trait-en át is hivatkozhatunk (&dyn MyTrait), anélkül is, hogy tudnánk a struct pontos típusát.

A struct-ok trait által előírt metódusait szintén egy implementációs blokkon belül írhatjuk meg:

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