我在图书馆中找到std::rc::Rc
这个trait implementation
impl<T> !Send for Rc<T>
where
T: ?Sized,
Send
前面的感叹号是什么意思?
我查阅了The Rust Programming Language¹书和The Rust Reference²,但没有找到解释。请在答案中提供参考。
答案 0 :(得分:10)
Activity
中描述Send
特征的消极特质实施。
总结:Send
特质是不安全的特质。 RFC说:
实施它是不安全的,因为实施它会带来语义保证,如果受到损害,会深深地威胁到内存安全。
默认情况下实施所有类型:
unsafe impl Send for .. { }
注意..
作为默认实现的语法。特征也必须没有定义任何方法。默认实现是由所有类型实现的标记特征。
因此,要选择退出Send
,请写下负面特质实施:
impl !Send for MyType { }
答案 1 :(得分:7)
这是negative trait impl,因此您可以将其视为选择退出Send
特征。