标签: struct rust lifetime
在Rust documentation中,他们举例说明了结构在包含引用时如何需要生存期:
struct Foo<'a> { x: &'a i32, }
因为
我们需要确保对Foo的任何引用都不能超过对其包含的i32的引用。
Foo
i32
我的问题是:那不应该是隐式的吗?我们什么时候不关心它的结构实例超过了它包含的引用?
Rust已经具有函数和方法的生存期删除规则,因此我们不必显式声明生存期约束。为什么它们没有类似的结构省略规则?