今度は「シンタックスとセマンティクス」やっていきます。
変数束縛
let
を使う。
パターン
let
を用いた際の左式は パターン
と呼ばれる。
let (x, y) = (1, 2);
こういうことが可能。
型アノテーション
let x: i32 = 5;
公式ドキュメントでは推論する型をコメントで書くやり方も紹介されているが、基本的には型は書いていこう。
可変性
変数束縛はイミュータブル。なので以下はエラー。
let x: i32 = 5; x = 10; // re-assignment of immutable variable `x`
ミュータブルとして扱いたい場合は、 mut
を使う。
let mut x: i32 = 5; x = 10;
束縛を初期化する
未初期化の値を使用するとコンパイラに怒られる。
ついでに文字列中に値を差し込んで入れる例。
let x: i32 = 5; println!("x = {}", x); // x = 5
スコープとシャドーイング
変数束縛のスコープはブロック内のみ。
またスコープ内で変数束縛を上書くことをシャドーイングと呼ぶ。
let x: i32 = 8; { println!("{}", x); // "8"を印字する let x = 12; println!("{}", x); // "12"を印字する } println!("{}", x); // "8"を印字する let x = 42; println!("{}", x); // "42"を印字する
違う型で上書くことも出来る。