rust所有权理解,让所有人理解所有权

 

let▲▲▲ b=& ★★★a;

不管怎么样,有这个&,a妥妥的是失去了写权限,至于有没有失去读权限,请看★★★。

如果★★★是mut ,说明a大大方方的传递了所有,读写权限全部失去,b具有读写权限。

如果★★★啥特没有(即&a),说明a失去写权限的同时它耍了个心眼,并没有把写权限传给b,b只有只读权限,也就是说a也不能写,b也不能写,a和b都有读权限

--------------------------
如果▲▲▲是mut ,代表着b以后可以给别人传递写权限。

如果▲▲▲啥也没有(即let b=),说明b以后只能传递读权限。

例子1:

let b=&a;//a失去了写权限仍然具有读权限,b只具有只读权限,b给后面传的时候只能传只读。

let b=&mut a;//a 失去了所有,b具有读写权限,b给后面传的时候只能传只读。

let mut b=&a;//a失去了写权限仍然具有读权限,

 

let 后面跟的mut 有两层含义: 
let mut b: 一层是指,这个变量绑定可以以后再绑到其它地方
另一层是指,说明以后给c绑定的时候能&b或者&mut b 都可以,

let b: 一层是指,这个变量绑定不可以以后再绑到其它地方
另一层是指,说明以后给c绑定的时候知能&b,

let mut b=&mut a;//a 失去了所有,b具有读写权限,b给后面传的时候可以传读写权限

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值