新潮的功能

Rust 是根據過去數十年累積的所有經驗打造而成。

語言特色

  • 列舉和模式配對。
  • 泛型。
  • 沒有 FFI 負擔。
  • 零成本的抽象化機制。

工具

  • 更好的編譯錯誤描述。
  • 內建依附元件管理工具。
  • 內建測試支援。
  • 卓越的語言伺服器通訊協定支援。

重要須知:

  • 與 C++ 類似,零成本抽象化機制是指您不必為使用記憶體或 CPU 的高階程式設計結構「付費」。舉例來說,使用 for 編寫迴圈時,應產生與使用 .iter().fold() 結構大致相同的低階指示。

  • 值得一提的是,Rust 列舉屬於「代數資料型別」(也稱為「加總型別」),可讓型別系統表達 Option<T>Result<T, E> 等項目。

  • 提醒使用者詳讀錯誤訊息,許多開發人員已習慣忽略冗長的編譯器輸出結果。Rust 編譯器的表達能力比其他編譯器高出許多,通常都會提供「實用」的意見回饋,您可以直接將其複製貼到程式碼中。

  • 與 Java、Python 和 Go 等語言相比,Rust 標準程式庫較小。Rust 並不提供某些您可能認為是標準和基本項目的內容:

    • 隨機號碼產生器,請參閱 rand
    • SSL 或 TLS 支援,請參閱 rusttls
    • JSON 支援,請參閱 serde_json。 未提供此支援的原因是,標準程式庫中的功能無法移除,因此必須相當穩定。對於以上範例,Rust 社群仍在努力尋找最佳解決方案,但其中某幾個例子或許並沒有單一的「最佳解決方案」。 Rust 內建採用 Cargo 形式的套件管理工具,因此可讓您輕鬆下載及編譯第三方 Crate。這樣一來,就可以縮小標準程式庫的規模。

    如何找到理想的第三方 Crate 可能是一大問題。但請放心,https://lib.rs/ 這類網站可協助您比較 Crate 的健康指標,找出優質且值得信賴的 Crate。

  • rust-analyzer 是廣受支援的 LSP 實作項目,適用於主要的 IDE 和文字編輯器。