`alloc :: rc :: Rc`和`std :: rc :: Rc`有什么区别?

时间:2015-05-28 11:50:27

标签: module rust

我很好奇这两个模块在实践中有区别吗?如果没有,为什么这两个重复呢?

1 个答案:

答案 0 :(得分:7)

std::rc::Rc只是alloc::rc::Rc的重新导出。您可以在src/std/lib.rs中看到整个rc模块已重新导出:pub use alloc::rc;

alloc crate适用于任何类型的内存分配。引用计数,盒装,原始分配和对底层分配器的一般访问(通常在Rust中jemalloc)。由于Rc类型是标准库中应该存在的常见类型,但alloc包不应该是标准库的一部分,而只是rc模块{ {1}}被重新导出到标准库。这样可以避免用户不必关心alloc箱子,而是提供一个干净的标准库,而不会出现使用起来不舒服的奇怪东西。