코드는 한 덩어리처럼 보이지만 여러개의 범위로 구분되어있습니다.
범위를 구문하게 되면
Global Scope(전역범위)
Local Scope(지역범위)
가 있습니다.
스코프를 구분하는 범위는
브레이스 {} 입니다.
브레이스는 코드 블록의 범위를 지정합니다.
Global Scope는 어떤 브레이스에도 속하지 않습니다.
하나밖에 존재하지 않습니다.
Local Scope는 무조건 브레이스 안에 있습니다.
여러단계로 중첩이 가능하며 여러개 존재할 수 있습니다.
예시를 들어
#1번의 아래 커서를 보면 어떠한 브레이스{} 안에도 속해 있지 않습니다.
이게 Global Scope 입니다.
#3번의 아래 커서를 보면 브레이스 {} 안에 소속된 것을 확인할 수 있습니다.
이게 Local Scope 입니다.
예시의 빨간 박스는 펑션 스코프 라고 합니다. 하지만 로컬 스코프와 차이는 별로 없어 로컬 스코프라고 해도 무방합니다.
만약 글로벌 스코프에 예시와 같은 상수를 선언한다면
이제 글로벌 스코프에서는 g1이라는 이름을 사용할 수 없습니다.
현재 #2에 g2 라는 상수가 추가되어 있습니다.
하지만 예제에는 지금 g2가 선언되지 않은 시점인 #1에
print(g2)라는 명령어가 들어가 있습니다.
이대로 실행을 하게된다면 에러가 발생합니다.
반대로 #2 의 let g2 = 456 코드 아래에
print(g2)라는 명령어를 입력하게 된다면
정상적으로 출력이 가능합니다.
로컬 스코프 안에서는 상위 스코프나 글로벌 스코프에 접근할 수 있습니다.
출처:kxcoding Essential Swift 강좌
'기초' 카테고리의 다른 글
5.Boolean,String,Type Inference (0) | 2024.05.31 |
---|---|
4.메모리와 Int Float (0) | 2024.05.30 |
2. 이름 정의 규칙 (0) | 2024.05.26 |
1.변수와 상수를 선언하는 문법 (0) | 2024.05.26 |
Xcode 기초 세팅 (0) | 2024.05.19 |