我理解 borrow、trait 或 struct 具有生命周期的意义,但我不明白为什么类型会具有生命周期。 我对类型的理解是它们是在编译时使用的抽象概念,它们在二进制中根本不需要存在。例如,一个具有两个整数的结构体、一个由两个整数组成的元组和一个大小固定的含两个整数的数组在编译后都应该映射到相同的内存值布局,并且代码将使用字节偏移量来查找这两个值。如果我的理解正确,那么生命周期的概念根本不应该适用于类型,因此下面这两个结构体将是等价的:
pub struct Foo<T> {
foo: T
}
pub struct Bar<T: 'static> {
bar: T
}
除了等效之外,该语法根本不存在。我一定误解了什么,大量的谷歌搜索也没有帮助。类型生命周期的目的是什么,它们应该在什么时候使用?
T
的生命周期限制。还可以查看 RFC 0192 以获取有关对象和泛型类型限制的信息。 - Dimitris Fasarakis Hilliard