3.6 生命周期省略
06-生命周期省略 — Comprehensive Rust
1分钟内可阅读完
译文 · 基于 Comprehensive Rust
原文链接: https://google.github.io/comprehensive-rust/lifetimes/lifetime-elision.html
3.6 生命周期省略
函数参数与返回值的生命周期必须完整指定,但在大多数情况下 Rust 允许按 几条简单规则 省略生命周期。这不是推理(inference)——只是语法简写。
- 每个没有生命周期标注的参数都会获得一个。
- 若只有一个参数生命周期,它会赋给所有未标注的返回值。
- 若有多个参数生命周期,但第一个是
self,则该生命周期赋给所有未标注的返回值。
| |
逐步对每个示例函数应用生命周期省略规则。
only_args由第一条规则补全,identity由第二条补全,Foo::get由第三条补全。若应用三条省略规则后仍未填满所有生命周期,你会得到编译错误,要求手动添加标注。