相关疑难解决方法(0)

是否可以创建RefCell <Any>?

是否可以RefCell<Any>在Rust中创建类型的东西?我尝试了以下方法:

fn test2<T : Any>(x : T) -> RefCell<Any>{
    return RefCell::new(x) as RefCell<Any>
}
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

error: the trait `core::marker::Sized` is not implemented for the type `core::any::Any + 'static` [E0277]
<anon>:8 fn test2<T : Any>(x : T) -> RefCell<Any>{
Run Code Online (Sandbox Code Playgroud)

该文档RefCell包括以下内容

pub struct RefCell<T> where T: ?Sized {
    // some fields omitted
}
Run Code Online (Sandbox Code Playgroud)

这让我相信(连同这个问题的答案)这样的事情是可能的.我也尝试过:

fn test1<T : Any>(x : T) -> Box<Any>{
    return Box::new(x) as Box<Any>
}
Run Code Online (Sandbox Code Playgroud)

哪个工作得很好.双方BoxRefCell似乎有类似的界限,所以我不太清楚,我在这里失踪.任何帮助将非常感激.我在Rust Playground有这个,如果有帮助的话.

rust

5
推荐指数
1
解决办法
185
查看次数

标签 统计

rust ×1