Rust 基于所有权的资源管理

OBRM(又被成为RAII:Resource Acquisition is Initialization,资源获取即初始化),在Rust中你会有很多和它打交道的机会,特别是在使用标准库的时候。

这个模式简单来说是这样的:如果要获取资源,你只要创建一个管理它的对象。如果要释放资源,你只要销毁这个对象,由对象负责为你回收资源。而所谓资源通常指的就是内存。BoxRc,以及std::collections中几乎所有的东西都是为了方便且正确地管理内存而存在的。这对于Rust尤为重要,因为我们并没有垃圾回收器帮我们管理内存。关键点就在这:Rust要掌控一切。不过我们并不是只能管理内存。差不多所有的系统资源,比如线程、文件、还有socket,都可以用到这些API。

创建一个自定义类型的实例的方法只有一种:先命名,然后一次性初始化它的所有成员:struct Foo { a: u8, b:u32, c: bool,}enum Bar { X(u32), Y(bool),}st ...