我意识到事情仍然不稳定,但为什么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>
VS
impl<T: Debug> Debug for Weak<T>
fn fmt(&self, f: &mut Formatter) -> Result
那我应该使用哪一个?他们都被标记为“不稳定”。
答案 0 :(得分:7)
Rust的标准库实际上由多个相互连接的板条箱组成。 std
除了包含一些自己的功能外,还可以作为一个&#34; facade&#34;在这些其他板条箱上,公开重新出口已经稳定的部分。
事实上,只有一个Weak
:alloc
中的一个std
。只是std
再出口它。关于使用哪一个:如果通过std
提供了某些内容,请通过Weak
使用它:这是不太可能改变的路径...
...除了涉及不稳定的功能,其中input
是一个:它不稳定,所以没有保证。