發表文章

目前顯示的是有「Rust」標籤的文章

[Rust] Trait 設計模式元素拆解與組合規則

Rust Trait 設計指南|決策、取捨與可執行範例 An engineering field guide 先決定哪些部分需要變動、由誰持有資料,再選擇派發方式與介面。把 11 個常用主題放回各自的設計位置,讓這份文章成為下一次開發時能直接查用的指南。 11 個獨立範例 僅使用標準函式庫 Stable · Edition 2024 離線可閱讀與複製 適合已熟悉 struct、enum、借用與基本 trait 語法的讀者。內容查核:2026-09-29。 文章目錄 01 設計的三個維度 02 選型決策樹 03 方案比較 04 派發與所有權 05 契約與組合 06 API 與呼叫語意 07 設計落地與檢核 08 官方參考資料 跳到 11 個完整範例 01 泛型與 impl Trait 02 dyn Trait 03 enum 與 match 04 借用與生命週期 05 關聯型別 06 關聯函式 07 關聯常數 08 Supertraits 與預設方法 09 From / TryFrom 10 運算子多載 11 完全限定語法 01 / MENTAL MODEL 先分開三個設計維度 Trait 定義可被實作的契約。泛型、trait object、關聯型別與轉換 trait 解決的是不同問題;它們可以組合,不是 11 個互斥選項。若只有一種實作,也沒有替換或測試隔離需求,先使用具體型別與 inherent impl 即可。 ① 行為如何選擇? T: Trait 保留具體型別; dyn Trait 擦除具體型別; enum + match 在已知變體間選擇行為。 ② 資料由誰持有? T 持有值、 &T 借用值、 Box<T> 持有配置於堆積的值。所有權與派發方式分開決定。 ③ 介面承諾什...