#スコープとは
変数、定数、関数、型の名前の有効範囲を表すもの
適用範囲に応じてグローバルスコープ、ローカルスコープに分類される
全ての変数、定数、関数、型はどちらかのスコープに属する
#約束事
同じスコープ内には同じ名前を複数存在させることはできない
※変数、定数、関数、型の種類が異なっていても同様
![スクリーンショット 2019-07-07 22.03.35.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F396155%2F35fc41d1-325d-e52d-e260-988bcbc62b87.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=5ed717e47a45cae4e2adc2fcb2a65aa3)
#ローカルスコープ
関数や制御構文の内部で定義されるスコープ
外部からの参照はできず、関数や制御構文の実行文の内部でのみ有効のため
意図しない変更が起こりにくいメリットがある
#グローバルスコープ
関数、型宣言の外部で定義されるスコープ
宣言された変数や定数はファイル外を含めどこからでも参照可能だが、意図しない変更を招きやすいため、ローカルスコープでの宣言よりも説明的な命名が必要である
#参考文献
[改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 WEB+DB PRESS plus