Rust 的 生命周期省略规则 (Lifetime Elision Rules) 是 Rust 编译器为了让开发者少写重复代码而内置的一套“推断逻辑”。 在 Rust 的早期版本中,每一个引用都必须显式标注生命周期(例如 )。后来开发者发现,在很多常见的场景下,生命周期的模式是固定的。为了提高人体工程学(Ergonomics),Rust 团队将这些通用模式硬编码到了编译器中。 如果你的函数签名符合这些规则,编译器就会自动帮你填上生命周期;如果不符合,编译器就会报错,要求你手动标注。 核心概念:输入与输出生命周期 在介绍规则之前,需要区分两个概念: 1. 输入生命周期 (Input Lifetimes):函数参数中的引用。 2. 输出生命周期 (Output Lifetimes):函数返回值中的引用。 --- 三条省略规则 编译器会按照顺序检查以下三条规则。如果检查完这三条规则后,仍然有输出生命周期没有被确定,编译器就会报错。 规则 1:每个引用参数都有其自己的生命周期参数 编译器会为每一个引用类型的参数分配一个独立的生命周期参数。 1个参数: 相当于 2个参数: 相当于 规则 2...