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給後面傳的時候可以傳讀寫權限

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