代码点读机 / Rust / dyn

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全部词条