Rust 泛型

作用和 C++ 的 template 差不多

Rust 线程同步:消息传递

以 pipe 的方式进行数据传输

Rust 多线程与并发

安全和高效的处理并发是 Rust 语言的主要目标之一。随着现代处理器的核心数不断增加,并发和并行已经成为日常编程不可或缺的一部分。可惜的是,在 Rust 中由于语言设计理念、安全、性能的多方面考虑,并没有采用 Go 语言大道至简的方式,而是选择了多线程与 async/await 相结合,优点是可控性更强、性能更高,缺点是复杂度并不低,当然这也是系统级语言的应有选择:使用复杂度换取可控性和性能。

Rust Cell<T>: 在不可变引用的同时修改目标数据

Rust 提供了 Cell 和 RefCell 用于内部可变性,简而言之,可以在拥有不可变引用的同时修改目标数据

Rust Arc<T>:在多线程里共享对象

Rust 里提供了和 Box<T&rt; 类似功能,但是多线程安全的替代品 Arc<T&rt;

Rust 中的计数指针

类似于 shared pointer,用于解决一个值

智能指针:Deref, Drop

智能指针需要实现的两个 trait: Deref & Drop

Rust 中的智能指针

C++ 后来的 std::unique_ptr<> 等智能指针的设计和这个很像

迭代器:消费、适配

Consume Iterator 只要迭代器上的某个方法 A 在其内部调用了 next 方法,那么 A 就被称为消费性适配器:因为 next 方法会消耗掉迭代器上的元素,所以方法 A 的调用也会消耗掉迭代器上的元素。 注意,这里会拿走的是迭代器的所...

Rust 迭代器

转化为迭代器 .into_iter() 拿走所有权,并转化为迭代器 .iter() 对元素进行不可变借用的迭代器 .iter_mut() 对元素进行可变借用的迭代器,可以修改元素 Iterator Trait, IntoIterator Tr...

1237