Crate alloc1.36.0[−][src]
Expand description
Rust core 分配和集合库
该库提供了用于管理堆分配值的智能指针和集合。
与 libcore 一样,该库通常不需要直接使用,因为其内容已重导出到 std
crate 中。
但是,使用 #![no_std]
属性的 Crates 通常不依赖于 std
,因此他们会改用此 crate。
Boxed 值
Box
类型是智能指针类型。Box
只能有一个所有者,所有者可以决定对内容进行可变的,这些内容存在于堆中。
由于 Box
值的大小与指针的大小相同,因此可以在线程之间高效地发送此类型。
由于每个节点通常只有一个所有者,即父节点,因此通常使用 boxes 构建树状数据结构。
引用计数指针
Rc
类型是一种非线程安全的引用计数指针类型,旨在共享线程内的内存。
Rc
指针包装类型 T
,并且仅允许访问共享引用的 &T
。
当继承的可变性 (例如使用 Box
) 对于应用程序来说过于受限时,此类型很有用,并且通常与 Cell
或 RefCell
类型配对以允许进行可变的。
原子引用计数指针
Arc
类型与 Rc
类型等效。它提供 Rc
的所有相同功能,不同之处在于它要求包含的 T
类型是可共享的。
此外,Arc<T>
本身可发送,而 Rc<T>
不可发送。
这种类型允许共享访问所包含的数据,并且通常与同步原语 (例如互斥锁) 配对以允许共享资源的可变。
Collections
该库中定义了最通用的通用数据结构的实现。它们通过 standard collections library 重导出。
堆接口
alloc
模块将默认接口定义为默认分配器。它与 libc 分配器 API 不兼容。
Modules
prelude | Experimental 分配 Prelude |
alloc | 内存分配 API |
borrow | 用于处理借用数据的模块。 |
boxed | 堆分配的指针类型。 |
collections | 集合类型。 |
fmt | 用于格式化和打印 |
rc | 单线程引用计数指针。 |
slice | 动态大小的视图到一个连续的序列, |
str | Unicode 字符串片。 |
string | 一个 UTF-8 编码的可增长字符串。 |
sync | 线程安全的引用计数指针。 |
task | 类型和 Traits 用于处理异步任务。 |
vec | 具有堆已分配内容的连续可增长数组类型,写为 |
Macros
format | 使用运行时表达式的插值创建 |
vec | 创建一个包含参数的 |