Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 指向某一特征的指针_Rust - Fatal编程技术网

Rust 指向某一特征的指针

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:

为什么下面的失败?我如何存储指向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
但找到了
~-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这很奇怪。我可以确认你的代码崩溃了(即使做了一些修改——问题几乎肯定存在)。然而,我不确定这是否总是崩溃-不知道为什么这个案例是特殊的。