Rust 类型具有静态生存期意味着什么?
我理解借用、特征或结构有一个生命周期意味着什么,但我不明白为什么一个类型会有一个生命周期。我对类型的理解是,它们是在编译时使用的抽象,它们根本不需要存在于二进制文件中。例如,具有两个整数的结构、两个整数的元组和两个整数的固定大小数组在编译时都应映射到内存中相同的值排列,代码将使用字节偏移量来查找这两个值。如果我说的没错,那么生命周期的概念根本不应该应用于类型,因此以下两种结构是等效的:Rust 类型具有静态生存期意味着什么?,rust,lifetime,Rust,Lifetime,我理解借用、特征或结构有一个生命周期意味着什么,但我不明白为什么一个类型会有一个生命周期。我对类型的理解是,它们是在编译时使用的抽象,它们根本不需要存在于二进制文件中。例如,具有两个整数的结构、两个整数的元组和两个整数的固定大小数组在编译时都应映射到内存中相同的值排列,代码将使用字节偏移量来查找这两个值。如果我说的没错,那么生命周期的概念根本不应该应用于类型,因此以下两种结构是等效的: pub struct Foo{ 傅:T } pub-struct-BarT可以承载比静态更短的生命周期。例如,
pub struct Foo{
傅:T
}
pub-struct-BarT
可以承载比静态更短的生命周期。例如,T
可能是一些和'a str
(对于一些'a
),因此Foo
变成Foo参见T
的生命周期界限的最后一段。也看到了。我读了那一页,在这一点之前它是有意义的。奇怪的是,我能想到的任何应用程序都可以由一个值上的约束来处理。例如,当一个闭包借用某个对象以便返回对该对象的引用时,闭包的生存期仅限于该借用对象的生存期,但是闭包的类型应该永远持续。好的,我认为这是有意义的。如果我理解正确,类型的生存期并不意味着类型在生存期结束时变得无效,而是意味着填充该类型的值具有可能过期的关联生存期。因此,当一个结构拥有包含借来数据的东西的所有权时,可以使用这种方法,以强制执行该结构的实例不会超过其拥有的值(其中包含借来的值)。我做对了吗?编译器将计算出任何T
的Foo
的生存期限制,包括T
是否包含比静态
更短的生存期。如果你构造一个Foo