Crate alloc

1.36.0 · source ·
Expand description

Rust 核心分配和集合库

该库提供了用于管理堆分配值的智能指针和集合。

这个库和 core 一样,通常不需要直接使用,因为它的内容在 std crate 中被重新导出。 但是,使用 #![no_std] 属性的 Crates 通常不依赖于 std,因此他们会改用此 crate。

Boxed 值

Box 类型是智能指针类型。Box 只能有一个所有者,所有者可以决定对内容进行可变的,这些内容存在于堆中。

由于 Box 值的大小与指针的大小相同,因此可以在线程之间高效地发送此类型。 由于每个节点通常只有一个所有者,即父节点,因此通常使用 boxes 构建树状数据结构。

引用计数指针

Rc 类型是一种非线程安全的引用计数指针类型,旨在共享线程内的内存。 Rc 指针包装类型 T,并且仅允许访问共享引用的 &T

当继承的可变性 (例如使用 Box) 对于应用程序来说过于受限时,此类型很有用,并且通常与 CellRefCell 类型配对以允许进行可变的。

原子引用计数指针

Arc 类型与 Rc 类型等效。它提供 Rc 的所有相同功能,不同之处在于它要求包含的 T 类型是可共享的。 此外,Arc<T> 本身可发送,而 Rc<T> 不可发送。

这种类型允许共享访问所包含的数据,并且通常与同步原语 (例如互斥锁) 配对以允许共享资源的可变。

Collections

该库中定义了最通用的通用数据结构的实现。它们通过 标准 collections 库 重导出。

堆接口

alloc 模块将默认接口定义为默认分配器。它与 libc 分配器 API 不兼容。

Modules

  • 内存分配 API
  • 用于处理借用数据的模块。
  • 用于堆分配的 Box<T> 类型。
  • 集合类型。
  • 与 FFI 绑定有关的实用工具。
  • 用于格式化和打印 Strings 的实用工具。
  • 单线程引用计数指针。Rc 代表引用计数。
  • 切片原始类型的实用工具。
  • str 原始类型的实用工具。
  • 一个 UTF-8 编码的可增长字符串。
  • 线程安全的引用计数指针。
  • 类型和 Traits 用于处理异步任务。
  • 具有堆已分配内容的连续可增长数组类型,写为 Vec<T>

Macros

  • 使用运行时表达式的插值创建 String
  • 创建一个包含参数的 Vec