diff --git a/src/basic/lifetime.md b/src/basic/lifetime.md index 36e33dad..3fdc5c05 100644 --- a/src/basic/lifetime.md +++ b/src/basic/lifetime.md @@ -320,9 +320,9 @@ fn main() { } ``` -`ImportantExcerpt` 结构体中有一个引用类型的字段 `part`,因此需要为它标注上生命周期。结构体的生命周期标注语法跟泛型参数语法很像,需要对生命周期参数进行声明 `<'a>`。该生命周期标注说明,**结构体 `ImportantExcerpt` 所引用的字符串 `str` 必须比该结构体活得更久**。 +`ImportantExcerpt` 结构体中有一个引用类型的字段 `part`,因此需要为它标注上生命周期。结构体的生命周期标注语法跟泛型参数语法很像,需要对生命周期参数进行声明 `<'a>`。该生命周期标注说明,**结构体 `ImportantExcerpt` 所引用的字符串 `str` 生命周期需要大于等于该结构体的生命周期**。 -从 `main` 函数实现来看,`ImportantExcerpt` 的生命周期从第 4 行开始,到 `main` 函数末尾结束,而该结构体引用的字符串从第一行开始,也是到 `main` 函数末尾结束,可以得出结论**结构体引用的字符串活得比结构体久**,这符合了编译器对生命周期的要求,因此编译通过。 +从 `main` 函数实现来看,`ImportantExcerpt` 的生命周期从第 4 行开始,到 `main` 函数末尾结束,而该结构体引用的字符串从第一行开始,也是到 `main` 函数末尾结束,可以得出结论**结构体引用的字符串生命周期大于等于结构体**,这符合了编译器对生命周期的要求,因此编译通过。 与之相反,下面的代码就无法通过编译: