Rust 程式設計視訊教程(進階)——025_1 不安全 Rust 介紹

linghuyichong發表於2020-02-17

頭條地址: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 協議》,轉載必須註明作者和本文連結

令狐一衝

相關文章