X
Size: a a a
EG
X
OA
OA
OA
fn main() {
let x: Box<dyn Debug> = Box::new("Hi".to_string());
println!("&x: {:?}", &x);
println!("&x as Any->String: {:?}", (&x as &dyn Any).downcast_ref::<String>());
}AK
OA
AK
AK
OA
OA
OA
OA
AK
trait MyTrait: Any { ... }OA
OA
AK
OA
trait MyTrait: Any + Debug {
fn foo(&self) -> String {
"MyTrait::foo()".to_string()
}
}
impl MyTrait for String {}
fn main() {
let x: Box<dyn MyTrait> = Box::new("Hi".to_string());
println!("&x: {:?}", &x);
println!("&x.foo(): {:?}", &x.foo());
println!("&x as Any->String: {:?}", (&x as &dyn Any).downcast_ref::<String>());
}