dyn Rust · 关键字
把 Trait 当作动态分发的对象类型使用,运行时才确定具体是哪种实现类型。
怎么用
&dyn Trait 或 Box<dyn Trait>,用于创建 trait 对象
小例子
fn 展示(d: &dyn std::fmt::Display) {
println!("{}", d);
}
展示(&42);
运行结果
42
提醒:dyn 会擦除具体类型,调用方法通过虚表分发
官方文档:https://doc.rust-lang.org/reference/types/trait-object.html
在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Rust全部词条