mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2024-12-28 22:01:08 +08:00
Update Ch10
This commit is contained in:
parent
b96567ccba
commit
17d8cea497
@ -1280,9 +1280,9 @@ fn first_word<'a>(s: &'a str) -> &'a str {
|
||||
|
||||
编程到 Rust 的引用分析中的那些确定性模式,被称为 *生命周期省略规则,lifetime elision rules*。这些规则并非 Rust 程序员要遵循的;他们是编译器将考虑的一套特殊情形,并在咱们的代码符合这些情形时,咱们就不需要显式地写出生命周期。
|
||||
|
||||
这些省略规则,并不提供完全的推断。在 Rust 明确地应用了这些规则,但仍有着哪些引用有何种生命周期方面的模糊性时,那么编译器是不会就其余引用变量应有何种生命周期,加以猜测的。编译器将给到某个可通过添加生命周期注解,而予以消除的错误消息,而非对模糊的引用生命周期胡乱猜测。
|
||||
这些省略规则并不提供完全的推断。在 Rust 明确地应用了这些规则,但仍存在引用具有什么样的生命周期方面的模糊性时,编译器将不会就其余引用变量应有什么样的生命周期,加以猜测。相比于猜测,编译器将给到咱们,可通过添加生命周期注解而解决的一个报错。
|
||||
|
||||
在函数或方法参数上的生命周期,被称为 *输入生命周期(input lifetimes)*,而在返回值上的生命周期,则被称为 *输出生命周期(output lifetimes)*。
|
||||
函数或方法参数上的生命周期,被称为 *输入生命周期,input lifetimes*,而在返回值上的生命周期,则被称为 *输出生命周期,output lifetimes*。
|
||||
|
||||
在没有显式的生命周期注解时,编译器会用到三条规则,来计算出那些引用的生命周期。首条规则应用于输入生命周期,而第二及第三条规则,则是都应用于输出生命周期。在编译器抵达这三条规则的结尾处,而仍有其未能计算出生命周期的引用时,那么编译器就会以某个错误消息而停止。这三条规则适用于 `fn` 定义,对于 `impl` 代码块也一样适用。
|
||||
|
||||
|
@ -786,34 +786,52 @@ $ rustup component add llvm-tools-preview
|
||||
|
||||
## 附录 I - 术语清单
|
||||
|
||||
|
||||
- 单态化
|
||||
|
||||
所谓 *单态化,monomorphization*,是指即通过把在编译后用到的具体类型填入到泛型位置,而将通用代码转换为具体代码的过程。参考 [使用泛型代码的性能问题](Ch10_Generic_Types_Traits_and_Lifetimes.md#使用泛型参数代码的性能问题)。
|
||||
|
||||
|
||||
- 内聚属性
|
||||
|
||||
a property called *coherence*,参见 [在类型上实现某个特质](Ch10_Generic_Types_Traits_and_Lifetimes.md#在类型上实现某个特质)。
|
||||
|
||||
|
||||
- 孤儿规则
|
||||
|
||||
the orphan rule, 参见 [在类型上实现某个特质](Ch10_Generic_Types_Traits_and_Lifetimes.md#在类型上实现某个特质)。
|
||||
|
||||
|
||||
- `impl Trait` 语法
|
||||
|
||||
`impl Trait` syntax, 在函数参数清单中,将特质用作参数类型注解的语法。参见:[作为参数的特质](Ch10_Generic_Types_Traits_and_Lifetimes.md#作为参数的特质)
|
||||
|
||||
|
||||
- 特质边界语法
|
||||
|
||||
Trait bound syntax, 参见 [特质边界语法](Ch10_Generic_Types_Traits_and_Lifetimes.md#特质边界语法)
|
||||
|
||||
|
||||
- 语法糖
|
||||
|
||||
Sugar syntax, 参见 [特质边界语法](Ch10_Generic_Types_Traits_and_Lifetimes.md#特质边界语法)
|
||||
|
||||
|
||||
- 指明多个特质边界的 `+` 语法
|
||||
|
||||
The `+` syntax for specifying multiple trait bounds, 参见:[使用 + 语法,指定多个特质边界](Ch10_Generic_Types_Traits_and_Lifetimes.md#使用--语法指定多个特质边界)
|
||||
|
||||
|
||||
- `where` 子句
|
||||
|
||||
`where` clauses, 参见 []()
|
||||
|
||||
|
||||
- 输入生命周期
|
||||
|
||||
input lifetimes,函数或方法上的生命周期
|
||||
|
||||
|
||||
- 输出生命周期
|
||||
|
||||
output lifetimes, 返回值上的生命周期
|
||||
|
Loading…
Reference in New Issue
Block a user