gpt4 book ai didi

rust - 压低借来的箱子

转载 作者:行者123 更新时间:2023-11-29 07:47:45 24 4
gpt4 key购买 nike

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

最佳答案

有一个替代方法,但它不是Box 的方法: 这是 Any::downcast_ref() .感谢 deref 强制和 Box es Deref -impl,你可以调用TBox<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);

还有 Any::downcast_mut() 获取可变引用。

关于rust - 压低借来的箱子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42079539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com