Rust Tur Daftar Isi

Polimorfisme Dengan Trait

Rust mendukung polimorfisme dengan trait. Trait memungkinkan kita mengasosiasikan sekumpulan method dengan sebuah tipe struct.

Pertama kita mendefinisikan tanda tangan method dari sebuah trait:

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

Ketika sebuah struct mengimplementasikan sebuah trait, ini membangun sebuah kontrak yang memungkinkan kita berinteraksi secara tidak langsung dengan struct tersebut melalui tipe trait (contoh &dyn MyTrait), tanpa perlu mengetahui tipe sebenarnya.

Method trait yang diimplementasikan oleh sebuah struct didefinisikan di dalam sebuah blok implementasi:

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