【发布时间】:2015-05-28 20:20:04
【问题描述】:
我很好奇这两个模块在实践中是否有区别?如果没有,那为什么会有这两个重复项呢?
【问题讨论】:
我很好奇这两个模块在实践中是否有区别?如果没有,那为什么会有这两个重复项呢?
【问题讨论】:
std::rc::Rc 只是alloc::rc::Rc 的再导出。您可以在src/std/lib.rs 中看到整个rc 模块被重新导出:pub use alloc::rc;
alloc crate 适用于任何类型的内存分配。引用计数、盒装、原始分配和对底层分配器的一般访问(在 Rust 中通常为jemalloc)。由于Rc 类型是如此常见,它应该存在于标准库中,但alloc crate 不应该是标准库的一部分,只是将alloc 的rc 模块重新导出到标准库。这使用户不必关心alloc crate,而是提供了一个干净的标准库,没有容易使用不舒服的奇怪东西。
【讨论】:
core、alloc、collections、...)更加灵活,这样低级用户(例如内核编写者)可以只挑选 crate可以在他们的上下文中使用,另一方面,用户可以更方便地使用单个板条箱 (std)。