👣

ローカルスコープとグローバルスコープ

2023/07/02に公開

🎯Dartで書くとどんなものか?

グローバルスコープ(Global Scope)は、プログラム内のどこからでもアクセスできる最上位のスコープです。グローバルスコープ内で宣言された変数や関数は、そのプログラム全体で利用可能です。通常、グローバルスコープには、アプリケーションのエントリーポイントであるmain()関数や、グローバル変数、グローバル関数などが含まれます。

一方、ローカルスコープ(Local Scope)は、特定のブロックや関数内でのみアクセス可能なスコープです。ローカルスコープ内で宣言された変数や関数は、そのスコープ内でのみ利用できます。ローカルスコープは、関数のパラメータやローカル変数などの形で使用されます。

Dartでは、ブロック(中括弧で囲まれた領域)がスコープの境界を定義します。関数内部や条件文、ループなどのブロック内で宣言された変数は、そのブロック内でのみ有効です。ブロック外からはアクセスできません。

以下は、Dartでのグローバルスコープとローカルスコープの例です。

// グローバルスコープ
int globalVariable = 10;

void main() {
  // ローカルスコープ
  int localVariable = 20;

  print(globalVariable); // グローバル変数へのアクセス
  print(localVariable); // ローカル変数へのアクセス

  // ローカルスコープ内でのブロック
  if (true) {
    int blockVariable = 30;
    print(blockVariable); // ブロック内の変数へのアクセス
  }

  // print(blockVariable); // エラー: ブロック外からはアクセスできない
}

まとめ

スコープ(Scope)は変数や識別子が有効である範囲を指します。これは他の言語でも共通です。

Discussion