不安全的 Rust

Rust 語言包含兩個部分:

  • **安全的 Rust:**可確保記憶體安全,無法觸發未定義的行為。
  • **不安全的 Rust:**如果違反先決條件,便可能觸發未定義的行為。

We saw mostly safe Rust in this course, but it's important to know what Unsafe Rust is.

不安全的程式碼通常都很簡短、受到隔離,而且封裝在安全的抽象層中。您應該仔細記錄這類程式碼的正確性。

透過不安全的 Rust,可以使用五項新功能:

  • 對裸指標解參考。
  • 存取或修改可變的靜態變數。
  • 存取 union 欄位。
  • 呼叫 unsafe 函式 (包括 extern 函式)。
  • 實作 unsafe 特徵。

接下來將簡單介紹不安全的功能。如需瞭解詳情,請參閱 Rust Book 的第 19.1 章,以及 Rustonomicon

This slide should take about 5 minutes.

Unsafe Rust does not mean the code is incorrect. It means that developers have turned off some compiler safety features and have to write correct code by themselves. It means the compiler no longer enforces Rust's memory-safety rules.