問題一覧に戻る
初級所有権
問題31: 可変参照

可変参照(&mut)は値を変更できる参照です。重要な制約として、一度に一つの可変参照しか存在できません。これによりデータ競合を防ぎます。可変参照を作成するには、元の変数もmutである必要があります。関数に可変参照を渡すと、関数内で値を変更できます。

fn main() {
let s = String::from("hello");

// 可変参照を作成
let r = s;

// 参照を通じて変更
r.push_str(", world");
println!("{}", r);

// 変更する関数
fn change(s: String) {
s.push_str("!");
}

change( s);
println!("After change: {}", s);
}