支持 trait 对象的更多容器类型
在 Rust 1.0 中,只有某些特殊的类型可以创建成 trait objects.
在 Rust 1.2 中,这种限制被解除了,更多的类型可以做到这一点。 例如,
Rc<T>
,Rust 的引用计数类型之一:
use std::rc::Rc;
trait Foo {}
impl Foo for i32 {
}
fn main() {
let obj: Rc<dyn Foo> = Rc::new(5);
}
这段代码在 Rust 1.0 中无法执行,但是现在可以了。
如果您之前没有看过
dyn
语法,请参阅相关章节。对于不支持它的版本,将Rc <dyn Foo>
替换为Rc <Foo>
。
当前内容版权归 rust-lang-cn 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 rust-lang-cn .