' alloc::rc:: rc '和' std::rc:: rc '的区别是什么?



我很好奇这两个模块在实践中是否有区别?如果没有,那为什么会有这两个副本呢?

std::rc::Rcalloc::rc::Rc的转口产品。你可以在src/std/lib中看到。整个rc模块重新导出:pub use alloc::rc;

alloc crate适用于任何类型的内存分配。引用计数、装箱、原始分配和对底层分配器的一般访问(Rust中通常是jemalloc)。由于Rc类型是如此常见的类型,它应该存在于标准库中,但alloc crate不应该是标准库的一部分,只是allocrc模块被重新导出到标准库中。这使用户不必关心alloc crate,而是提供了一个干净的标准库,没有奇怪的东西,容易使用起来不舒服。

最新更新