(每条语句都标有?希望得到断言)
我只是慢慢地度过一生。
由于生命周期省略有助于省略明确描述生命周期(?)有些情况我们需要描述它们。
一个示例可能是包含引用的结构:
struct Person<a'>{
car: &'a Car
}
我对以下假设是否正确:
结构体是一种值类型 - 因此它的内存位于堆栈上。当使用该结构的作用域结束后,该结构就会消亡。但是由于这个结构体保存了对Car并且该引用可能会借用到其他地方 - 只要 Car 引用正在使用,该结构就需要保持活动状态。一生'a因此告诉 Person 结构体只要 Car 在使用中就保持活动状态。(?)
说实话,我自己都不相信上面的说法。因为在生锈寿命的其他定义中,我是这样理解的——汽车需要保持生命至少只要'a所以 Person 不会有悬空指针。
由于生命周期省略有助于省略明确描述生命周期(?)有些情况我们需要描述它们。
No As在这里,终身省略只是为了让你的生活更轻松(无论是作为作家还是读者)。生命周期仍然存在(语义上),但不需要明确表示(语法上)。
终身省略不起作用struct
据我所知,定义。它适用于函数签名和函数体。
但由于该结构体保存了对 Car 的引用,并且该引用可能被借用到其他地方 - 只要 Car 引用正在使用,该结构体就需要保持活动状态。
不。一生的目标是避免悬空引用,并表示借用关系。
- 悬空引用是指引用(长期)死值的引用,可能位于已释放的内存中或更糟糕的位于重用内存中。
- 借用检查器使用借用关系来跟踪某人是否仍然拥有对某个值的引用;当某人拥有对某个值的引用时,不应将其移动或更改为另一种类型,以免所述引用变得悬空。
要更深入地解释悬空引用,我推荐这个问题.
因此,生命周期是为了确保引用永远不会超过它所引用的值。
因此,约束与你的信念相反:目标'a
这里是让编译器确保你的Person
永远不会比Car
它指的是。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)