From a1068b0d4eb4b39b981597de49bcd8537376fada Mon Sep 17 00:00:00 2001 From: "Peng Hailin," Date: Wed, 19 Apr 2023 20:41:48 +0800 Subject: [PATCH] Update Ch10 --- src/Ch10_Generic_Types_Traits_and_Lifetimes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Ch10_Generic_Types_Traits_and_Lifetimes.md b/src/Ch10_Generic_Types_Traits_and_Lifetimes.md index aa24488..d1dc990 100644 --- a/src/Ch10_Generic_Types_Traits_and_Lifetimes.md +++ b/src/Ch10_Generic_Types_Traits_and_Lifetimes.md @@ -1019,9 +1019,9 @@ For more information about this error, try `rustc --explain E0106`. error: could not compile `lifetimes_demo` due to previous error ``` -这个帮助性文本,揭示了由于 Rust 无法区分出正返回的引用,是指向 `x` 还是 `y`,因此返回值类型就需要其上的一个泛型生命周期参数,a generic lifetime parameter。事实上,由于在该函数的函数体中,`if` 代码块返回的是到参数 `x` 的引用,而 `else` 代码块返回的则是到 `y` 的引用,所以就连咱们也不清楚! +帮助文本揭示了由于 Rust 无法区分出正返回的引用,是指向 `x` 还是 `y`,因此返回值类型就需要其上的一个泛型生命周期参数,a generic lifetime parameter。事实上,由于在该函数的函数体中,`if` 代码块返回的是到参数 `x` 的引用,而 `else` 代码块返回的则是到 `y` 的引用,所以就连咱们也不清楚! -在咱们定义这个函数时,是不清楚将传入到该函数的那些具体值的,因此就不清楚究竟是`if` 情形,还是 `else` 情形会被执行。咱们也不清楚将传入引用的具体生命周期,进而就无法查看如清单 10-17 及 10-18 中所看到的作用域,以确定出返回的引用是否始终有效。由于借用检查器不清楚 `x` 与 `y` 的生命周期,与返回值的生命周期有怎样的关联,因此借用检查器也无法确定出这一点。要修复这个错误,咱们就将添加定义出这些引用变量之间关系的泛型生命周期参数,进而借用检查器就可以完成他的分析。 +在咱们定义这个函数时,是不清楚将传入到该函数的那些具体值的,因此就不清楚究竟是`if` 情形,还是 `else` 情形会被执行。咱们也不清楚将传入引用的具体生命周期,进而就无法查看如清单 10-17 及 10-18 中所看到的作用域,以确定出返回的引用是否始终有效。由于借用检查器不清楚 `x` 与 `y` 的生命周期,与返回值的生命周期有怎样的关联,因此借用检查器也无法确定出这一点。要修复这个错误,咱们将添加定义出这些引用变量之间关系的泛型生命周期参数,进而借用检查器就可以完成他的分析。 ### 生命周期注解语法