我在库参考中找到了std::rc::Rc这个特征实现
impl<T> !Send for Rc<T>
where
T: ?Sized,
Run Code Online (Sandbox Code Playgroud)
前面的感叹号Send是什么意思?
我查阅了Rust编程语言 ¹书和The RustReference²,但没有找到解释.请在答案中提供参考.
nal*_*ply 11
这是RFC 19中描述的特征的负面特征实现.Send
总结:Send特质是一种不安全的特质.RFC说:
[它]实施起来是不安全的,因为实施它会带来语义保证,如果受到损害,会深深地威胁到内存安全.
默认情况下,它们适用于所有类型:
unsafe impl Send for .. { }
Run Code Online (Sandbox Code Playgroud)
注意..作为默认实现的语法.特征也必须没有定义任何方法.默认实现是由所有类型实现的标记特征.
因此,要选择退出Send,写一个负面的特质实现:
impl !Send for MyType { }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1937 次 |
| 最近记录: |