LoginSignup
3
1

More than 5 years have passed since last update.

[Swift]変数/定数のスコープ

Posted at

変数/定数のスコープ

スコープとは?

  • 変数/定数/関数/型の名前の有効範囲
    • ローカルスコープ
    • グローバルスコープ
  • 同一スコープ内では名前が一意である必要がある

ローカルスコープ

  • 関数や制御構文によって局所的に定義されるスコープ
  • 関数や制御構文が持つ実行文の内部のみで有効
    • スコープの外部からは参照できない
      • 意図しない変更が起こりにくい
ローカルスコープ
func someFunction() {
    let a = "a"
    print(a)    // OK
}

print(a)    // コンパイルエラー

someFunction()

グローバルスコープ

  • どの関数にも型宣言にも含まれないスコープ
  • プログラム全体から同じ名前で参照できる
    • 意図しない変更が起きやすい
      • ローカルスコープよりも説明的な命名が必要
グローバルスコープ
let globalA = "a"

func someFunction() {
    print(globalA)  // OK
}

print(globalA)  // OK

someFunction()
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1