ミュータビリティ
変数はデフォルトでイミュータブル(変更不可能)ですがmut構文を使用することで変更可能になります。
fn main() {
let _immutable_binding = 1;
let mut mutable_binding = 1;
println!("Before mutation: {}", mutable_binding);
// 問題ありません。
mutable_binding += 1;
println!("After mutation: {}", mutable_binding);
// エラー!イミュータブルな変数に新しい値を代入することはできません。
_immutable_binding += 1;
}
コンパイラはミュータビリティに関するエラーの詳細を出してくれます。