gpt4 book ai didi

rust - 如何从 Box 中获取 &dyn T

转载 作者:行者123 更新时间:2023-12-03 11:29:34 25 4
gpt4 key购买 nike

<分区>

我正在尝试获取 &dyn T来自Box<dyn T> ,如以下示例所示。但是,它无法编译。

trait MyTrait {

}

struct Foo;
impl MyTrait for Foo {}

fn main() {
let b: Box<dyn MyTrait> = Box::new(Foo);
let c: &dyn MyTrait = &b;
}

( https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=69c72904fbceae5b55470a878a441b7d )

错误信息是

error[E0277]: the trait bound `Box<dyn MyTrait>: MyTrait` is not satisfied
--> src/main.rs:10:27
|
10 | let c: &dyn MyTrait = &b;
| ^^ the trait `MyTrait` is not implemented for `Box<dyn MyTrait>`
|
= note: required for the cast to the object type `dyn MyTrait`

很明显可以得到一个&T来自Box<T> .我不明白为什么你得不到 &dyn T来自Box<dyn T> .

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com