几天前我开始学习Rust。
这是吉姆·布兰迪(Jim Blandy)着名的著作《锈中的编程》的摘录。
对于代码
fn g<'a>(p: &'a i32) { ... }
let x = 10;
g(&x);
表示
Rust选择&x的最小寿命,即对g的寿命。这符合所有约束:它不会超过x,并且将对g的整个调用括起来。因此,代码必须聚集。
Q1。 &x的最小生存期意味着什么?
对于代码
fn f(p: &'static i32) { ... }
let x = 10;
f(&x);
Q2。为什么此代码将失败?根据我的理解,如果我们使用&'static
表示整个程序中都存在的静态全局变量。 link
let x: 'static = 10;
const y: i32 = 10;
f(&x);
f(&y);