我很好奇这两个模块在实践中有区别吗?如果没有,为什么这两个重复呢?
std::rc::Rc只是再出口了alloc::rc::Rc.你可以在src/std/lib.rs中看到整个rc模块被重新导出:pub use alloc::rc;
该alloc箱为任何类型的内存分配.引用计数,盒装,原始分配和对底层分配器的一般访问(通常jemalloc在Rust中).由于Rc类型是应该存在于标准库中的常见类型,但是包不应该是标准库alloc的一部分,只是将rc模块alloc重新导出到标准库.这样可以避免用户不必关心alloc板条箱,而是提供一个干净的标准库,而不会出现使用起来不舒服的奇怪东西.