Rust 指向某一特征的指针
为什么下面的失败?我如何存储指向traits的自有指针Rust 指向某一特征的指针,rust,Rust,为什么下面的失败?我如何存储指向traits的自有指针 trait Trait {}; struct Struct; impl Trait for Struct {}; struct Container { child: ~Trait }; let container = ~Container { child: ~Struct }; 错误:不匹配的类型:应为~main::test02::Trait但找到了~main::test02::Struct(应为Trait基准测试::test02:
trait Trait {};
struct Struct;
impl Trait for Struct {};
struct Container {
child: ~Trait
};
let container = ~Container { child: ~Struct };
错误:不匹配的类型:应为
~main::test02::Trait
但找到了~main::test02::Struct
(应为Trait基准测试::test02::Trait
但找到了~-ptr必须强制转换值:
trait Trait {}
struct Struct;
impl Trait for Struct {}
struct Container {
child : ~Trait
}
fn main() {
let container = ~Container { child: ~Struct as ~Trait };
println("")
}
您必须转换值:
trait Trait {}
struct Struct;
impl Trait for Struct {}
struct Container {
child : ~Trait
}
fn main() {
let container = ~Container { child: ~Struct as ~Trait };
println("")
}
你是否如雷蒙所建议的那样,通过向你的特质类型施加价值而成功?我也在尝试同样的方法,它编译得很好,但运行时会出现错误。我为它打开了一个bug:@Andreas这很奇怪。我可以确认你的代码崩溃了(即使做了一些修改——问题几乎肯定存在)。然而,我不确定这是否总是崩溃——我不知道为什么这个案例是特殊的。你是否成功地按照雷蒙的建议将这个值赋予了你的特质类型?我也在尝试同样的方法,它编译得很好,但运行时会出现错误。我为它打开了一个bug:@Andreas这很奇怪。我可以确认你的代码崩溃了(即使做了一些修改——问题几乎肯定存在)。然而,我不确定这是否总是崩溃-不知道为什么这个案例是特殊的。