頭條地址:https://www.ixigua.com/i677586170644791348...
B站地址:https://www.bilibili.com/video/av81202308/
github地址:https://github.com/anonymousGiga/learn_rus...
1、在此節之前討論過的都是安全的Rust,即Rust在編譯時會強制執行的記憶體安全保證。不會強制執行這類記憶體安全保證的,就是不安全的Rust。
2、不安全的Rust存在的兩大原因:
(1)靜態分析本質上是保守的,就意味著某些程式碼可能是合法的,但是Rust也會拒絕。在此情況下,可以使用不安全的程式碼。
(2)底層計算機硬體固有的不安全性。如果Rust不允許進行不安全的操作,有些任務根本就完成不了。
3、不安全的Rust具有的超級力量
Rust會通過unsafe關鍵字切換到不安全的Rust。不安全的Rust具有以下超級力量:
(1)解引用裸指標
(2)呼叫不安全的函式或者方法
(3)訪問或修改可變靜態變數
(4)實現不安全的trait
注意:unsafe並不會關閉借用檢查器或禁用任何其它的Rust安全檢查規則,它只提供上述幾個不被編譯器檢查記憶體安全的功能。unsafe也不意味著塊中的程式碼一定就是不ok的,它只是表示由程式設計師來確保安全。
本作品採用《CC 協議》,轉載必須註明作者和本文連結