2.5.4 引用生命周期

译文 · 基于 Learning Rust

引用生命周期

原文链接: https://quinedot.github.io/rust-learning/st-references.html

下面这点你在 Rust 中会经常用到,甚至无需多想:

  • &'long T 可强制转换为 &'short T
  • &'long mut T 可强制转换为 &'short mut T

技术术语是「在生命周期上协变(covariant)」,但实用的直觉是「引用的(外层)生命周期可以缩短」。

这一性质对类型为引用的值成立,但对其他类型并不总是成立。例如,我们很快会看到,嵌套在另一引用内的引用的生命周期,这一性质并不总是成立。当性质不成立时,通常是由于不变性(invariance)。

即便你从未真正思考过协变,你也会逐渐培养出直觉——以至于最终遇到不变性、性质不成立时,你会感到意外。我们很快会看一些例子。

最后修改 August 23, 2026: 更新 (499855b16)