天天看點

019 Rust死靈書之資源管理

本系列錄制的視訊主要放在B站上​​Rust死靈書學習視訊​​

Rust 死靈書相關的源碼資料在https://github.com/anonymousGiga/Rustonomicon-Source

基于所有權的資源管理(OBRM)

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的所有成員。

洩漏

繼續閱讀