Rust 語言之旅 目錄

特徵多型 (polymorphism with traits)

Rust 支援特徵 (trait) 多型。特徵允許我們將一組方法與一個結構型別關聯在一起。

我們首先定義一個特徵的方法的簽章 (signature):

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

當一個結構實作一個特徵時,它建立了一個契約允許我們透過該特徵 (例如:&dyn MyTrait) 間接的與該結構互動, 而不需要知道它真正的型別。

一個結構實作特徵方法被定義在實作區塊裡:

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