変数の借用について

借用と参照の概念

Rustではデフォルトでの変数の代入が出来ない。(参照:所有権について
そこで、他の変数の値を利用して、かつ効率よくメモリを使用するために借用という概念を使用する。
以下にコード例を示す。

let a = 1;
let b = &a;
println!("{}",b); // 1と出力される

これは変数bに変数aの値を参照していることになる。
つまり、baを借用しているという意味となる。

可変参照

先ほどのコードではbを通じてaの値を変更することはできない。
あくまでも値の参照を取っているだけである。
これはたとえaが可変であってもである。

借用している変数から借用元の変数の値を変更したい場合には&mutキーワードを用いる。
以下にコード例を示す。

let mut a = 1;
let b = &mut a;
b = 5;
println!("{}",a); // 5と出力される

これによりbを介してaを変更することが出来る。
可変参照はスコープ内で一つの変数につき一つまでである。