inazuma code :ブロック式
do { ... }
構文 は、複数の式や文をまとめてひとつの「式」として評価します。
基本構文
ブロック内では複数の変数や処理を記述できます。
ブロック内で 最後に評価された式の結果 が、ブロック全体の値になります。
let x = do {
let y = 2;
let z = 3;
y + z;
};
// x = 5
スコープ
ブロック内で宣言した変数は、そのブロックの外からは参照できません。
外側のスコープの変数は参照できます。
let w = 1;
let x = do {
let y = 3;
y + w; // w は外側スコープの変数
};
// x = 4
ネスト
do
ブロックは入れ子にできます。
let w = 1;
let result = do {
let inner = do {
let z = 3;
z + w; // 4
};
inner * 2; // 8
};
主な用途
- 複雑な計算や条件分岐をひとまとまりの式として扱いたいとき
- 変数のスコープを限定して値を生成したいとき
- 関数呼び出しや代入の前に中間計算をまとめたいとき
まとめ
do { ... }
内の最後の式の評価結果がブロック全体の値になります。- ブロックは独立したスコープを持ちます。
- 外側のスコープの変数を参照できます。
- ネストに対応しています。