Rust 学习笔记 16:生命周期 (Lifetimes)
Rust 学习笔记 16:生命周期 (Lifetimes) “To live is to suffer, to survive is to find some meaning in the suffering… of the borrow checker.” 生命周期 (Lifetimes) 是 Rust 中最令人困惑的概念,没有之一。 在 Go 或 Java 中,GC 会自动管理对象的死活。你不需要关心引用活多久,反正 GC 兜底。 在 C++ 中,你需要手动管理,稍有不慎就是 Use-After-Free。 Rust 选择了第三条路:编译期验证引用有效性。这就是生命周期检查器 (Borrow Checker) 的工作。 1. 为什么需要生命周期? 主要为了避免悬垂引用 (Dangling References)。 1{ 2 let r; 3 { 4 let x = 5; 5 r = &x; 6 } // x 在这里销毁了 7 println!("r: {}", r); // r 指向了非法内存 8} 这段代码无法通过编译,因为 r 的生命周期比 x 长。 ...