[][src]Function tao_of_rust::ch05::lifetime::lifetime_demo

pub fn lifetime_demo()

生命周期

Base usage: 函数内借用检查会识别违反借用规则的情况 借用的生命周期不能长于出借方的生命周期

fn main() {
    let r; // 'a ──────────────────────┐
    {                       //         │
        let x = 5; // 'b ────────┐     │
        r = &x;    //            │     │ r是借用,x是出借方
    }  // ───────────────────────┘     │ 现在r的生命周期长度'a 大于 x的生命周期长度'b
    println!("r: {}", r); //           │ 必然会造成悬垂指针,所以报错
}// ───────────────────────────────────┘Run