Rust 转换为长方体<;任何>;

Rust 转换为长方体<;任何>;,rust,Rust,我有一个框,希望能够将其转换为框。应该这样做,但是尝试调用t.downcast::()表示范围内没有方法downcast 如果您有参考资料,文档将显示如何执行此操作。你可以像任何人一样做&Trait。但是它似乎不可能像方框那样显示我的意思。任何都允许向下转换到具体类型,所以当您转换到方框时,您需要知道这个具体类型),但它一点也不漂亮 不幸的是,我不知道一个简单的方法来做这种事情。像这样的东西很可能用一些不安全的代码来实现,但我不知道如何实现。你只能从一个具体的类型转换成Any。这并不像一开始看起

我有一个
,希望能够将其转换为
。应该这样做,但是尝试调用
t.downcast::()
表示范围内没有方法
downcast


如果您有参考资料,文档将显示如何执行此操作。你可以像任何人一样做
&Trait
。但是它似乎不可能像方框那样显示我的意思。

任何
都允许向下转换到具体类型,所以当您转换到
方框时,您需要知道这个具体类型),但它一点也不漂亮


不幸的是,我不知道一个简单的方法来做这种事情。像这样的东西很可能用一些不安全的代码来实现,但我不知道如何实现。

你只能从一个具体的类型转换成
Any
。这并不像一开始看起来那么容易,因为vtable的东西实际上是如何工作的,但它是可以做到的;是这样做的一个例子。@ChrisMorgan我查看了那里,没有看到将
Box
转换为
Box
的实例……我相信@ChrisMorgan指的是
mod.rs
文件,其中
Any
基本上是与
头一起重新实现的。不幸的是,这种事情只有在你的特质中才可能发生。@seanmonstar:这是一个为
Trait
实现
Any
的问题,这样你才能使用
。downcast::()
on
Box
trait MyTrait : Any {
    // ...
}