ミュータビリティ

変数はデフォルトでイミュータブル(変更不可能)ですが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;
}

コンパイラはミュータビリティに関するエラーの詳細を出してくれます。