本系列錄製的影片主要放在B站上Rust死靈書學習影片
Rust 死靈書相關的原始碼資料在github.com/anonymousGiga/Rustonomi...
OBRM(Ownership Based Resource Management),又被稱為RAII(Resource Acquisition is Initialization,資源獲取即初始化)。該模式簡單來說為:
- 如果要獲取資源,只需要建立一個管理它的物件;
- 如果要釋放資源,只要銷燬這個物件,該物件負責回收資源。
建立一個自定義型別的例項的方法只有一種:
- 先命名,再一次性初始化所有成員;
- 底層還是呼叫建構函式;
Rust中,賦值和複製建構函式是不存在的,因為Rust型別中有且僅有移動語義。
Rust中提供了兩種和C++中的copy語義相似的功能:Copy和Clone。
Rust透過Drop trait提供一個成熟的自動解構函式,該trait中包含以下方法:
fn drop(&mut self);
drop執行之後,Rust會遞迴的銷燬self的所有成員。
許多人覺得Rust已經消除了資源洩漏資源的可能性,實際應用中也差不多。但是,從理論角度,洩漏是無法避免的。
Rust中其實還有一個製造洩漏的函式,即mem::forget。此函式獲取傳遞給它的值,但是不呼叫它的解構函式。
本作品採用《CC 協議》,轉載必須註明作者和本文連結