Rust 你如何设定锈菌的寿命?
我可以在struct Route中设置航路点的生存期。在结构amoredifferent中,我使用特征坐标并得到错误 需要显式的生存期限制 在这种情况下,你如何设置特征的寿命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
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的集合。然后,我可能会添加用于计算总距离等的函数。我希望顺序是确定性的。