Rust 引用、借用、所有权、生命周期的理解

概念解析:

引用与借用是相对关系有引用才有借用,借用是指所有者将数据查看权限借出,引用则是获取的数据查看权引用至所有者。

let x =5;
let y = &x;

所有权与内存回收

rust是一个内存安全的语言,其本质原因是在编译阶段会进行检查,当所有权离开作用域时内存会被回收,其判断依据是所有权,其并不包含被出借的引用部分。

let x ;
{
let y =2;
x = &x;
}
println!("x value is {}",x);

如上所示当x进行使用的时候,x引用指向的真实值y已经被回收掉了。

引入生命周期的原因

由上我们可以得出引入生命周期的原因,当使用引用的时候其指向的值是可能被回收的。所以我们给不同的引用指向的所有者设定一个生命周期概念, 一个引用的生命周期实质指向其所有则的生命周期。因此我们再使用引用的可对生命周期进行限定。

// 限定此函数仅能处理生命周期相同的函数。 返回的引用的生命周期,为x,y拥有的生命周期中最短的。 即使返回的引用是最大生命周期,其函数返回值也在最短生命周期中起作用。
fn compute <'a>( x : &'a str , y :&'a str) -> &'a str{}

猜你喜欢

转载自blog.csdn.net/weixin_40669549/article/details/129661394