新潮的功能
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 和文字編輯器。