我已阅读以下文档:https : //doc.rust-lang.org/rust-by-example/scope/borrow/mut.html
我也读过这个问题:(不能借用可变的借用内容)
这些文档帮助我了解了如何将借款声明为可变的(我认为):
let mut (part1, part2) = someTuple;
但是我还无法找到明确的说明,以了解如何将借款视为不变的东西。这是我的猜测:
let (part1, part2) = someTuple;
我知道这是一个超级基本的问题,但是Google搜索使我进入了深入的解释范围,而我仍在尝试在最简单的情况下理解我的观点。
如何在Rust中借用可变变量与不可变变量?
let x = 0;
let immutable_borrow = &x; //borrow as immutable
//to borrow as mutable the variable needs to be declared as mutable
let mut y = 1;
let mutable_borrow = &mut y; //borrow as mutable
注意1:您可以在同一范围内借用不可变或可变的变量,这意味着您不能这样做:
let mut x = 0;
let immutable_borrow = &x;
let mutable_borrow = &mut x;
为什么?
因为如果您具有同一变量的可变引用和不可变引用,那么该变量的数据可能会通过该可变引用进行更改,这可能会导致很多问题。
注意2:您可以无休止地无休止地借用一个变量,但您只能一次可变地借用一个变量。
//You can do this
let x = 0;
let x1 = &x;
let x2 = &x;
//...
//But you can't do this
let mut y = 0;
let y1 = &mut y;
let y2 = &mut y; //won't compile
为什么?
正如刚才提到的。一个可变引用可能会更改所有其他可变引用所未知的数据。这可能会导致很多问题。但是可以有多个不可变的引用,因为不能意外更改数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句