是否可以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)
哪个工作得很好.双方Box并RefCell似乎有类似的界限,所以我不太清楚,我在这里失踪.任何帮助将非常感激.我在Rust Playground有这个,如果有帮助的话.
rust ×1