是否有可能在Rust中創建RefCell<Any>
類型的東西?我試過如下:是否可以創建RefCell <Any>?
fn test2<T : Any>(x : T) -> RefCell<Any>{
return RefCell::new(x) as RefCell<Any>
}
,但我得到了以下錯誤:
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>{
爲RefCell
文檔包括以下
pub struct RefCell<T> where T: ?Sized {
// some fields omitted
}
這使我相信(連同答案從this問題)這樣的事情是可能的。我也試過:
fn test1<T : Any>(x : T) -> Box<Any>{
return Box::new(x) as Box<Any>
}
它工作得很好。 Box
和RefCell
似乎都有類似的邊界,所以我不太清楚我在這裏丟失了什麼。任何幫助將非常感激。如果這有幫助,我在Rust Playground中有這個。