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给后面传的时候可以传读写权限

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章