我遇到过许多用单撇号表示的 rust 迹类型:
'static
'r
'a
那个撇号的意义是什么?也许是参考文献的修饰语(&
)?特定于引用的泛型类型?我不知道这些文件藏在哪里.
我遇到过许多用单撇号表示的 rust 迹类型:
'static
'r
'a
那个撇号的意义是什么?也许是参考文献的修饰语(&
)?特定于引用的泛型类型?我不知道这些文件藏在哪里.
这是Rust的命名生命周期 .
引用The Rust Programming Language的话:
Rust中的每个引用都有一个生命周期,这是该引用的有效范围.大多数时间生命是隐式的和推断的,就像大多数时间类型是推断的一样.与由于可能存在多种类型而必须注释类型类似,在某些情况下,引用的生存期可能以几种不同的方式关联,因此Rust需要我们使用通用生存期参数注释关系,以便确保运行时使用的实际引用一定有效.
生命周期注释不会更改任何引用的时间长度
生命周期注释有一个稍微不同寻常的语法:
换句话说,一个生命周期近似于参考点所指向的数据有效的执行时间.Rust编译器将保守地推断出最短的安全使用生命周期 .如果你想告诉编译器一个引用的生命周期比最短估计值长,你可以给它命名,比如说输出引用的生命周期与给定的输入引用的生命周期相同.
'static
生命周期 是一种特殊的生命周期 ,是所有生命周期 中最长的——在项目期间.一个典型的例子是在程序/模块的生命周期内始终可用的字符串"文本".
从第29张幻灯片开始,您可以从this slide deck页获得更多信息.
Lifetimes in Rust还深入讨论了生命周期.