我意识到事情仍然在变化,但为什么Weak在文档中的两个不同的地方被引用?
std::rc::Weak- http://doc.rust-lang.org/stable/std/rc/struct.Weak.html
alloc::rc::Weak- http://doc.rust-lang.org/stable/alloc/rc/struct.Weak.html
也许我错过了一些东西,但我在两者中看到的唯一区别是fmt函数签名:
impl<T> Debug for Weak<T> where T: Debug
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
Run Code Online (Sandbox Code Playgroud)
VS
impl<T: Debug> Debug for Weak<T>
fn fmt(&self, f: &mut Formatter) -> Result
Run Code Online (Sandbox Code Playgroud)
那么我应该使用哪一个?他们都被标记为"不稳定".
Rust的标准库实际上由多个互连的板条箱组成. std除了包含一些自己的功能外,它还可以作为这些其他板条箱的"外观",公开重新输出已经稳定的部分.
事实上,只有一个Weak:一个在alloc.只是std再出口它.至于使用哪一个:如果有可用的东西std,请使用它std:这是不太可能改变的路径......
...除了涉及不稳定的特征,其中Weak一个是:它不稳定,所以没有保证.