[Chapter 3-1]Rust変数と可変性



変数と可変性


Rustのデフォルト変数は次のとおりです. 不変性これは、信頼が提供するセキュリティと容易に実現できる同期性を得るための強制的な措置です.変数が不変である場合、値はバインドされてから変更できません.不変変数を再割り当てしようとすると、コンパイラにエラーが発生します.
Rustはコンパイラの値が変わらないことを保証します.コードを作成または分析するときに、変数の値がどのように変化するかを追跡する必要がなく、コードをより合理的にします.
変数はデフォルトでは不変ですが、変数名の接頭辞として使用されます.  mut  可変変数の宣言を許可する追加これは、コードの他の部分で変数の値を変更して、後でコードを表示する人がこれらの値を見ることができるようにすることを意味します.
fn main() {
    let mut x = 5;
    println!("The value of x is: {}", x);
    x = 6;
    println!("The value of x is: {}", x);
}
上のコードを実行します. xの値が5から6に変わるのがわかります.

変数と定数の違い


変数の不変性は定数を思い出させる.しかし、定数と変数は少し違います.定数は  const  キーワードを使用する必要があります.  mutは使用できません.定数は、値のタイプも宣言する必要があります.定数は、任意の領域(領域全体を含む)で宣言できます.定数は定数式にのみ設定でき、関数呼び出しの結果値や他の実行時間で決定された値は設定できません.
const MAX_POINTS : u32 = 100_000;
上記の例では、MAX_POINTSという定数を宣言し、値を100000に設定します.Rustの定数命名規則に従って、すべての単語に大文字を使用します.

Shadowing


letキーを使用して、以前に宣言した変数と同じ名前の新しい変数を宣言し、新しい変数は以前の変数をシャドウ化します.すなわち、第1の変数は第2の変数によって遮蔽される.
fn main() {
    let x = 5;
    let x = x + 1;
    let x = x * 2;
    println!("The value of x is: {}", x);
}
実行結果:  The value of x is: 12shadowing変数の使用  これはmutと発表されたのとは違います.  let  キーワードを使用せずに変数に値を付与しようとすると、コンパイル中にエラーが発生します.
影  let  キーワード 同じ名前で新しい変数を有効に宣言したり、値のタイプを変更したりすることができます.たとえば、空白文字の数を表示するために空白文字を受信したい場合、実際に空白の数を保存したい場合は、有効に使用できます.
let spaces = "   ";
let spaces = spaces.len();
shadowingを使用すると、space_strspace_numなどの置換名を使用することなく、スペース名を簡単に使用できます.mut宣言変数を使用して上記の操作を実行すると、変数のタイプを変更できないことを示すコンパイルエラーが発生します.