サンプルコード Variables and Mutabilityを実行してみる
Variables and Mutability
src/main.rs
fn main() {
let x = 5;
println!("The value of x is: {}", x);
x = 6;
println!("The value of x is: {}", x);
}
x = 6の時に、xはmut指定していないため、ビルドエラーとなる。
VSCodeでもエラーが表示される。
src/main.rs
fn main() {
let mut x = 5;
println!("The value of x is: {}", x);
x = 6;
println!("The value of x is: {}", x);
}
これで問題無く動作する。
Differences Between Variables and Constants
定数の定義
const MAX_POINTS: u32 = 100_000;
mutはできない。常に不変。
Rustのコーディング規約では、アンダーバー入りの大文字で書く。
Shadowing
src/main.rs
fn main() {
let x = 5;
let x = x + 1;
let x = x * 2;
println!("The value of x is: {}", x);
}
mutが無くてもlet指定すれば変数の値を上書きできる。
(上書きというよりかは変数の再定義)
let spaces = " ";
let spaces = spaces.len();
こういう使い方は可能だが、
let mut spaces = " ";
spaces = spaces.len();
こういう使い方はできない。
変数spacesは&str型で定義されているので、
let spaces = spaces.len()のように再定義することで設定可能だが、
spaces = spaces.len()のようにすると変数の型が異なるためエラーとなる。