Reference 如何使用引用向量创建结构?

Reference 如何使用引用向量创建结构?,reference,rust,lifetime,Reference,Rust,Lifetime,Rust似乎是一种最理想的语言——我早就知道与编译器抗争是代价。我试图为一个结构创建一个构造函数,但是我发现的寿命不够长 蒸馏至最裸露的骨骼,我有: fn main() { println!("RUST PLEASE"); } struct Help<'a> { list: Vec<&'a Traits> } impl<'a> Help<'a> { fn new() -> Help<'a> {

Rust似乎是一种最理想的语言——我早就知道与编译器抗争是代价。我试图为一个结构创建一个构造函数,但是我发现
的寿命不够长

蒸馏至最裸露的骨骼,我有:

fn main() {
    println!("RUST PLEASE");
}

struct Help<'a> {
    list: Vec<&'a Traits>
}

impl<'a> Help<'a> {
    fn new() -> Help<'a> {
        Help { list: vec![&Test] }
    }
}

trait Traits {
    fn mice(&self);
}

struct Test;
impl Traits for Test {
    fn mice(&self) { print!("WHY"); }
}
fn main(){
println!(“请生锈”);
}
结构帮助
}
恳求{

fn new()->Help您可能实际上不想返回引用…但是您可以将它们装箱,并让它们拥有装箱值:

fn main() {
    println!("RUST PLEASE");
}

struct Help {
    list: Vec<Box<Traits>>
}

impl Help {
    fn new() -> Help {
        Help { list: vec![Box::new(Test)] }
    }
}

trait Traits {
    fn mice(&self);
}

struct Test;
impl Traits for Test {
    fn mice(&self) { print!("WHY"); }
}
fn main(){
println!(“请生锈”);
}
结构帮助{
名单:Vec
}
请求帮助{
fn new()->帮助{
帮助{list:vec![Box::new(Test)]}
}
}
特质{
fn小鼠(自身);
}
结构测试;
用于测试的impl特性{
fn鼠标(&self){print!(“为什么”);}
}
然后,您的
Help
结构拥有一个装箱值向量,您可以继续引用该向量

可能存在的副本