変数/定数のスコープ
スコープとは?
- 変数/定数/関数/型の名前の有効範囲
- ローカルスコープ
- グローバルスコープ
- 同一スコープ内では名前が一意である必要がある
ローカルスコープ
- 関数や制御構文によって局所的に定義されるスコープ
- 関数や制御構文が持つ実行文の内部のみで有効
- スコープの外部からは参照できない
- 意図しない変更が起こりにくい
- スコープの外部からは参照できない
ローカルスコープ
func someFunction() {
let a = "a"
print(a) // OK
}
print(a) // コンパイルエラー
someFunction()
グローバルスコープ
- どの関数にも型宣言にも含まれないスコープ
- プログラム全体から同じ名前で参照できる
- 意図しない変更が起きやすい
- ローカルスコープよりも説明的な命名が必要
- 意図しない変更が起きやすい
グローバルスコープ
let globalA = "a"
func someFunction() {
print(globalA) // OK
}
print(globalA) // OK
someFunction()