1. 程式人生 > >Rust入坑指南:居安思危

Rust入坑指南:居安思危

任何事情都是相對的,就像Rust給我們的印象一直是安全、快速,但實際上,完全的安全是不可能實現的。因此,Rust中也是會有不安全的程式碼的。 嚴格來講,Rust語言可以分為**Safe Rust**和**Unsafe Rust**。Unsafe Rust是Safe Rust的超集。在Unsafe Rust中並不會禁用任何的安全檢查,Unsafe Rust出現的原因是為了讓開發者可以做一些更加底層的操作。這些事情本身也是不安全的,如果仍然要進行Rust的安全檢查,那麼就無法進行這些操作。 在進行下面這5種操作時,Unsafe Rust不會進行安全檢查。 - 解引用原生指標 - 呼叫unsafe的函式或方法 - 訪問或修改可變的靜態變數 - 實現unsafe的trait - 讀寫聯合體中的欄位 ### 基礎語法 Unsafe Rust的關鍵字是unsafe,它可以用來修飾函式、方法和trait,也可以用來標記程式碼塊。 標準庫中也有不少函式是unsafe的。例如String中的`from_utf8_unchecked()`函式。它的定義如下: ``` rust pub unsafe fn from_utf8_unchecked(by