mirror of
https://github.com/KaiserY/trpl-zh-cn
synced 2024-11-09 08:51:18 +08:00
Update ch10-03-lifetime-syntax.md
This commit is contained in:
parent
34260b0265
commit
80b1efe5c2
@ -242,7 +242,7 @@ fn first_word<'a>(s: &'a str) -> &'a str {
|
||||
|
||||
编译器采用三条规则来判断引用何时不需要明确的注解。第一条规则适用于输入生命周期,后两条规则适用于输出生命周期。如果编译器检查完这三条规则后仍然存在没有计算出生命周期的引用,编译器将会停止并生成错误。这些规则适用于 `fn` 定义,以及 `impl` 块。
|
||||
|
||||
第一条规则是编译器为每一个是引用参数都分配了一个生命周期参数。换句话说就是,有一个引用参数的函数有一个生命周期参数:`fn foo<'a>(x: &'a i32)`,有两个引用参数的函数有两个不同的生命周期参数,`fn foo<'a, 'b>(x: &'a i32, y: &'b i32)`,依此类推。
|
||||
第一条规则是编译器为每一个是引用的参数都分配一个生命周期参数。换句话说就是,函数有一个引用参数的就有一个生命周期参数:`fn foo<'a>(x: &'a i32)`,有两个引用参数的函数就有两个不同的生命周期参数,`fn foo<'a, 'b>(x: &'a i32, y: &'b i32)`,依此类推。
|
||||
|
||||
第二条规则是如果只有一个输入生命周期参数,那么它被赋予所有输出生命周期参数:`fn foo<'a>(x: &'a i32) -> &'a i32`。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user