代码如下:
fn inner<'a:'b, 'b>(x:&'a i32, _y:&'b i32) -> &'b i32 {
x
}
fn main() {
let a = 1;
{
let b = 2;
inner(&b, &a);
inner(&a, &b);
}
}
Run Code Online (Sandbox Code Playgroud)
'a:'b函数中的边界inner意味着生命周期'a持续时间超过'b。在上面的例子中,变量的生命周期比b短a。借用检查器在遇到inner(&b, &a). 但是,代码可以编译。有人可以提供一些解释吗?
rust ×1