生锈 – 向下倾倒借来的盒子

Rust的Box类型的 downcast()方法要求调用站点拥有Box实例的完全所有权.似乎没有可以使用借用引用的等效项.是否有一个原因?是否有适用于借用实例的解决方法

解决方法

一个替代方案,但它不是Box方法:它是 Any::downcast_ref().感谢deref coersion和Boxes Deref-impl,你可以在Box< T>上调用T的方法了.直.因此,您可以在Box调用Any :: downcast_ref()< 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);

还有Any::downcast_mut()获得可变参考.

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效