gpt4 book ai didi

rust - Rust 如何结合它的多个生命周期?

转载 作者:行者123 更新时间:2023-12-04 11:26:08 28 4
gpt4 key购买 nike

代码如下:

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);
}
}
'a:'b在函数中 inner意味着生命周期 'a持续时间超过 'b .在上面的例子中,变量 b 的生命周期短于 a .当遇到 inner(&b, &a) 时,借用检查器应该会失败.但是,代码可以编译。有人可以提供一些解释吗?

最佳答案

生命周期注释描述借用的生命周期,而不是借用变量的生命周期。在两次拨打 inner() 的电话中,所有借用持续到调用结束,因此编译器可以为它们推断相同的生命周期,因此边界 'a: 'b在这两种情况下都满足。

关于rust - Rust 如何结合它的多个生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66883017/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com