メインコンテンツまでスキップ

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 { ... } 内の最後の式の評価結果がブロック全体の値になります。
  • ブロックは独立したスコープを持ちます。
  • 外側のスコープの変数を参照できます。
  • ネストに対応しています。