Rust 支援特徵 (trait) 多型。特徵允許我們將一組方法與一個結構型別關聯在一起。
我們首先定義一個特徵的方法的簽章 (signature):
trait MyTrait {
fn foo(&self);
...
}
當一個結構實作一個特徵時,它建立了一個契約允許我們透過該特徵 (例如:&dyn MyTrait
) 間接的與該結構互動, 而不需要知道它真正的型別。
一個結構實作特徵方法被定義在實作區塊裡:
impl MyTrait for MyStruct {
fn foo(&self) {
...
}
...
}