langShift

型別系統與特徵

學習 Rust 的靜態型別系統、特徵(Traits)和泛型,對比 JavaScript 的動態型別系統

型別系統與特徵

📖 學習目標

理解 Rust 的靜態型別系統和特徵系統,學會使用泛型和特徵約束,對比 JavaScript 的動態型別系統。


🎯 型別系統對比

JavaScript 的動態型別

JavaScript 是動態型別語言,型別在執行時確定:

正在加载...

Rust 的靜態型別

Rust 是靜態型別語言,型別在編譯時確定:

正在加载...

型別系統差異

  1. 靜態 vs 動態: Rust 編譯時檢查型別,JavaScript 執行時檢查
  2. 型別安全: Rust 防止型別錯誤,JavaScript 允許型別轉換
  3. 效能: Rust 零成本抽象,JavaScript 有執行時開銷
  4. 開發體驗: Rust 編譯時錯誤提示,JavaScript 執行時錯誤

🔧 特徵(Traits)系統

特徵定義與實作

正在加载...

特徵的關鍵概念

  1. 共享行為: 特徵定義了一組型別必須實作的方法。
  2. Ad-hoc 多型: 允許將不同型別視為相同的特徵。
  3. 預設實作: 特徵可以提供方法的預設實作。
  4. 特徵約束: 強制泛型型別必須實作特定的特徵。
  5. 特徵物件: 使用 dyn Trait 在執行時進行動態分派。