Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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_Traits - Fatal编程技术网

Rust 你如何设定锈菌的寿命?

Rust 你如何设定锈菌的寿命?,rust,traits,Rust,Traits,我可以在struct Route中设置航路点的生存期。在结构amoredifferent中,我使用特征坐标并得到错误 需要显式的生存期限制 在这种情况下,你如何设置特征的寿命 extern crate collections; use super::wp; use coord::Coord; pub struct Route<'a> { waypoints: &'a Vec<wp::Waypoint> } pub struct AMoreDiffer

我可以在struct Route中设置航路点的生存期。在结构amoredifferent中,我使用特征坐标并得到错误

需要显式的生存期限制

在这种情况下,你如何设置特征的寿命

extern crate collections;
use super::wp;
use coord::Coord;


pub struct Route<'a> {
    waypoints: &'a Vec<wp::Waypoint>
}

pub struct AMoreDifferentRoute<'a> {
    waypoints: &'a Vec<Coord>
}
外部板条箱收集;
使用super::wp;
使用coord::coord;

pub-struct-Route您可以将其作为附加特性绑定写入:

pub struct AMoreDifferentRoute<'a> {   // '
    waypoints: &'a Vec<Box<Coord+'a>>
}
pub结构无差别>
}

您需要在
框中指定生存期,然后将其作为附加的特征绑定写入:

pub struct AMoreDifferentRoute<'a> {   // '
    waypoints: &'a Vec<Box<Coord+'a>>
}
pub结构无差别>
}

您需要在
Box中指定生存期,因为
Coord
是一个trait,您需要以某种方式将该值作为trait对象装箱,例如
Vec


你也应该强烈地考虑这到底是不是你想要的;通常不是这样。但要对此做出任何判断,我需要看到更多的代码。

因为
Coord
是一种特征,所以需要以某种方式将值作为特征对象,例如
Vec


你也应该强烈地考虑这到底是不是你想要的;通常不是这样。但是要对此做出任何判断,我需要看到更多的代码。

我得到一个错误,它不是由coord::coord+'a实现的,并且是由所需的。e、 g.
航路点:&'a对不起,当然会有错误。我应该提到,如果没有
Box
wrapper,它将无法工作,因为裸特征类型没有大小,无法存储在
Vec
中。请您解释一下
Coord+'a
语法的意思好吗?@NicolasBonnefon,嗯,文本中已经解释过了。这是“一种即使结构类型隐藏在trait对象后面也可以指定此生存期的方法”。@NicolasBonnefon,我已经稍微重写了答案,也许现在更清楚了。我得到了一个不是由coord::coord+'a实现的错误,这是。e、 g.
航路点:&'a对不起,当然会有错误。我应该提到,如果没有
Box
wrapper,它将无法工作,因为裸特征类型没有大小,无法存储在
Vec
中。请您解释一下
Coord+'a
语法的意思好吗?@NicolasBonnefon,嗯,文本中已经解释过了。这是“一种即使结构类型隐藏在trait对象后面也可以指定此生存期的方法”。@NicolasBonnefon,我已经稍微重写了答案,也许现在更清楚了。我只是想有一个实现lat long的集合。然后我可能会添加用于计算总距离等的函数。我希望顺序是确定性的。我只希望有一个实现lat long的集合。然后,我可能会添加用于计算总距离等的函数。我希望顺序是确定性的。