Fla*_*ise 6 rust borrow-checker
downcast()Rust Box类型的方法要求调用站点拥有Box实例的完全所有权.似乎没有可以使用借用引用的等效项.是否有一个原因?是否有适用于借用实例的解决方法?
有另一种选择,但它不是一种方法Box:它是Any::downcast_ref().感谢deref coersion和Boxes Deref-impl,你可以直接调用T方法Box<T>.因此你可以直接打电话Any::downcast_ref()给你Box<Any>:
let b: Box<Any> = Box::new(27u64);
// The type of `ref_a` and `ref_b` is `&u64`
let ref_a = b.downcast_ref::<u64>().unwrap();
let ref_b = b.downcast_ref::<u64>().unwrap();
println!("{} == {}", ref_a, ref_b);
Run Code Online (Sandbox Code Playgroud)
还有Any::downcast_mut()获得可变参考.
| 归档时间: |
|
| 查看次数: |
338 次 |
| 最近记录: |