use std::any::Any;
pub trait MemorizedOutput: Any {
fn as_any(&self) -> &dyn Any;
}
impl<T: Any> MemorizedOutput for T {
fn as_any(&self) -> &dyn Any {
self
}
}
fn main() {
let a = Box::new(1i32) as Box<dyn MemorizedOutput>;
println!("{}", a.as_any().downcast_ref::<i32>().unwrap());
}
Run Code Online (Sandbox Code Playgroud)
为什么上面的代码在unwrap().
rust ×1