From e16ad2093d6bcb7756a39555e4c23c418266689b Mon Sep 17 00:00:00 2001 From: jwcesign Date: Fri, 15 Mar 2024 17:19:08 +0800 Subject: [PATCH] =?UTF-8?q?cleanup:=20=E4=BF=AE=E5=A4=8D=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E4=BD=93=E6=88=90=E5=91=98=EF=BC=88=E5=BC=95=E7=94=A8=EF=BC=89?= =?UTF-8?q?=E7=9A=84=E7=94=9F=E5=91=BD=E5=91=A8=E6=9C=9F=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit cleanup: 修复结构体成员(引用)的生命周期定义 --- src/basic/lifetime.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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` 函数末尾结束,可以得出结论**结构体引用的字符串生命周期大于等于结构体**,这符合了编译器对生命周期的要求,因此编译通过。 与之相反,下面的代码就无法通过编译: