rust怎么传送到队友_Rust 借用所有权 Borrowing / 引用

上一章节我们学习了 所有权 ( ownership ) 这个改变,知道了在 堆( heap ) 上分配的变量都有所有权。

上一章节,我们也以一种艰难的方式将具有所有权的变量,比如字符串变量、向量变量作为参数传递给函数,同时为了保证函数调用之后变量仍然具有所有权,又在函数内返回变量。

这样的过程,不但没有减轻我们的负担,反而觉得越来越难以使用的感觉。

使用的过程中,我就一直在想,为什么不多支持一个 借用所有权 或者 租借所有权 的概念呢 ?

把具有所有权的变量传递给函数作为参数时,就是临时出租所有权,当函数执行完后就会自动收回所有权。就像现实生活中,我可以把某个工具临时借用给其它人,当他们使用完了之后还给我们就可以了。

随着对 Rust 的深入了解,觉得 Rust 语言的开发者也是不笨的,他们也想到了 借用所有权 这个概念。

Rust 支持对所有权的 出借 borrowing。当把一个具有所有权的变量传递给函数时,就是把所有权借用给函数的参数,当函数返回后则自动收回所有权。

下面的代码,我们并没有使用上一章节的 所有权 转让规则收回所有权,所以程序会报错

fn main(){

letv=vec![10,20,30];// 声明一个向量,变量 v 具有数据的所有权

print_vector(v);

println!("{}",v[0]);// 这行会报错

}

fn print_vector(x:Vec){

println!("Inside print_vector function {:?}",

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值