【发布时间】:2020-12-08 00:10:36
【问题描述】:
我是生锈的新手。我有这个代码:
enum Foo {
F1 { x: Vec<Foo>, y: i32 },
F2 { x: &Bar },
}
struct Bar {
x: i32,
y: Vec<Foo>,
}
显然,这不会编译,因为我必须给出一个生命周期参数,这会导致:
enum Foo<'a> {
F1 { x: Vec<Foo<'a>>, y: i32 },
F2 { x: &'a Bar<'a> },
}
struct Bar<'a> {
x: i32,
y: Vec<Foo<'a>>,
}
像这样使用生命周期是一种好习惯吗?在这种情况下,我需要 F2 来引用 Bar。
【问题讨论】:
-
我不确定我是否理解您所说的最佳实践是什么意思。是否需要引用取决于场景,对吗?如果你的结构中有引用,那么生命周期仍然存在。只是有时由于终身省略,您不需要指定它们。如果您愿意,您可以在每个引用上指定生命周期参数。
标签: struct rust enums lifetime