スコープとは
変数、定数、関数、型の名前の有効範囲を表すもの。
スコープその範囲に応じて、グローバルスコープとローカルスコープの2種類に分類することができる。
同じスコープ内には同じ名前を複数存在させることはできず、変数、定数、関数、型が異なっていても名前は一意である必要がある。
ローカルスコープとは
関数や制御構文によって局所的に定義されるスコープをローカルスコープという。
ローカルスコープで宣言された定数や変数は、定義した関数や制御構文からのみアクセスでき、スコープの外部からは参照することができない。
例
func sampleFunction() {
let a = "ドラえもん"
print(a) // ドラえもん
}
print(a) // コンパイルエラー
sampleFunction() // ドラえもん
グローバルスコープ
どの関数にも型宣言にも含まれないプログラム全体から参照できるスコープをグローバルスコープと言う。
例
let a = "ドラえもん"
func sampleFunction() {
print(a) // ドラえもん
}
print(a) // ドラえもん
sampleFunction() // ドラえもん
注意点
グローバルスコープはどこからでも同じ名前で参照できてしまい、影響範囲が大きく、ローカルスコープで宣言された変数や定数よりも説明的な命名が必要になるので、意味をコメントで残しておくのも良い。