【Swift】スコープ

スコープとは変数や定数が有効な範囲のことを言います。
スコープには ローカルスコープ と グローバルスコープ があります。
それぞれの特徴を見ていきましょう。ローカルスコープは中括弧 {} の中を指す。
グローバルスコープはどのローカルスコープにも属さないスコープを指す。

scopeアイキャッチimg

前回は ネスト について書きました。

今回は スコープ について書いていこうと思います。

スコープとは

スコープとは変数や定数が有効な範囲のことを言います。
スコープには ローカルスコープ グローバルスコープ があります。
それぞれの特徴を見ていきましょう。

ローカルスコープの特徴

  • ローカルスコープは中括弧 { } の中を指す
  • ローカルスコープ内に宣言した変数や定数は、ローカル変数またはローカル定数と言う
  • ローカルスコープ内に宣言された変数や定数は、中括弧 { }中でしか使えない(ローカルスコープを抜けると破棄されるため)
//ローカルスコープ例
for _ in 0 ... 9 {
    var a = 1 //ローカル変数
    print(a)
}

//実行結果
/*
1
1
1
1
1
1
1
1
1
1
 */

上の例はローカルスコープ内に変数を定義して、同じスコープ内から print関数 でアクセスしている例です。
ローカル変数にアクセスするには同じスコープ内からじゃないとアクセスできません。

for _ in 0 ... 9 {
    var a = 1 //ローカル変数
}
print(a) //これはエラーになります。


このようにローカルスコープの外から、ローカルスコープ内の変数や定数にアクセスしようとするとエラーになります。

scopeコードimg

グローバルスコープの特徴

  • グローバルスコープはどのローカルスコープにも属さないスコープを指す
  • どのローカルスコープにも属さない変数や定数は、グローバル変数またはグローバル定数と言う
  • グローバルスコープは同じプロジェクト内であればどのファイルからでもアクセス可能
var b = 1

for _ in 0 ... 9 {
    print(b)
}

//実行結果
/*
1
1
1
1
1
1
1
1
1
1
 */

上の例はローカルスコープの外に 変数 b を宣言して、ローカルスコープの中から print関数 でアクセスしている例です。
変数 b は中括弧 { } の外で宣言しているので、グローバルスコープ(グローバル変数)となりどこからでもアクセスできます。

scopeコードimg2

グローバル変数や定数はどこからでもアクセスできて使いやすいメリットもありますが、長いプログラムになってくると変数や定数も増えてきて見づらくなってきます。
ローカルスコープ内でしか使わない変数や定数はできるだけローカルスコープ内に書いた方が、可読性の向上やエラーの回避につながると思います。

scopeコードimg3

以上 スコープ についてでした。

次回は 配列型 について書いていこうと思います。

実行環境

version
Xcode 14.2 (14C18)
Swift 5.2.4

公式ドキュメント

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/

投稿者: tomo

30代経験ゼロからプログラミングを始めて、趣味でiOSのアプリを作って遊んでる人。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です