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::()
onBox
。
trait MyTrait : Any {
// ...
}