显式注解

借用检查器使用显式生命周期注解来确定引用应该有效多长时间。在生命周期没有被省略1的情况下,Rust 需要显式注解来确定引用的生命周期。显式注解生命周期的语法使用撇号字符,如下所示:

foo<'a> // `foo` 有一个生命周期参数 `'a`

类似于闭包,使用生命周期需要泛型。此外,这种生命周期语法表示 foo 的生命周期不能超过 'a 的生命周期。类型的显式注解形式为 &'a T,其中 'a 已经被引入。

在有多个生命周期的情况下,语法类似:

foo<'a, 'b> // `foo` 有生命周期参数 `'a` 和 `'b`

在这种情况下,foo 的生命周期不能超过 'a 'b 的生命周期。

请看下面的例子,展示了显式生命周期注解的使用:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1

省略(elision)隐式地注解生命周期,因此与显式注解不同。

另请参阅:

泛型(generics)闭包(closures)