gpt4 book ai didi

struct - Rust-引用结构的Enum变体

转载 作者:行者123 更新时间:2023-12-03 11:36:36 25 4
gpt4 key购买 nike

我是使用rust 的新手。我有以下代码:

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

最佳答案

您编写的生命周期注释适用于这种情况。 (在其他情况下,最好使用多个生存期参数,例如在处理&mut引用时,以避免过度约束生存期,但这不是这种情况。)
但是,实际上您可能根本不想使用&Bar,而是拥有Box<Bar>结构的其他一些类型,例如Rc<Bar>Bar。在这种情况下,您将不需要生命周期注释。是否是这种情况取决于这些结构的构造和使用方式,因此不能仅从类型声明中确定它,但是如果您尝试使用它们,则会通过编译错误来查找。

关于struct - Rust-引用结构的Enum变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65191296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com