Comprehensive Rust(繁体中文) 202406
陣列存取行為會經過邊界檢查。 – 整數溢位的行為是明確的 (恐慌或迴繞)。 • 「現代化的語言特徵」- 具表現力且符合人因工程學的高階語言 – 列舉和模式配對。 – 泛型。 – 沒有 FFI 負擔。 – 零成本的抽象化機制。 – 更好的編譯錯誤描述。 – 內建依附元件管理工具。 – 內建測試支援。 – 卓越的語言伺服器通訊協定支援。 這裡不要花太多時間。這幾點稍後全都會深入介紹。 請務必詢問全班同學, Java、Go 和 Python 會利用垃圾收集器來識別並捨棄無法再存取的記憶體。這能確保任何指標都 可以取消參照,進而消除 UAF (使用已釋放記憶體) 和其他類別的錯誤。不過,GC 會耗費執行階段 成本,且很難正確調整。 在許多情況下,Rust 的擁有權和借用模型效能都能媲美 C 語言,並在必要處精準分配及釋放,達成零成 本作業。Rust 也提供類似 C++ 智慧指標的工具。如有需要,您還可以使用參照計數等其他選項,而且甚至 指標,以便建立之後會捨棄的循環。 • Rc 的計數可確保只要有參考,內含的值就會保持有效。 • Rust 中的 Rc 就像 C++ 中的 std::shared_ptr 一樣。 • Rc::clone 的成本很低:這個做法會建立指向相同配置的指標,並增加參考計數,而不會產生深 克隆,尋找程式碼效能問題時通常可以忽略。 • make_mut 實際上會在必要時克隆內部值 (「clone-on-write」),並回傳可變動的參考。0 码力 | 356 页 | 1.41 MB | 1 年前3
共 1 条
- 1