블록
선언문과 구문이 중괄호 안에 하나도 없거나 여러 개가 나열되어 있는 것을 블록 이라고 부른다.
Block = "{" StatementList "}" . StatementList = { Statement ";" } .
소스 코드 안에는 명시적인 블록뿐만 아니라 함축적인 블록도 있다:
- 유니버스 블록(universe block) 은 Go 소스 코드 전체를 의미한다.
- 각 패키지(package)에는 패키지에 속한 모든 Go 소스 코드를 포괄하는 패키지 블록 이 있다.
- 각 파일에는 파일에 있는 모든 Go 소스 코드가 포함된 파일 블록(file block) 이 있다.
- 각 "if", "for", "switch" 문은 그들만의 함축 블록이 있는 것으로 간주된다.
- "switch" 나 "select" 문의 각 절(clause)은 함축적인 블록처럼 동작한다.
블록은 중첩될 수 있으며 범위를 결정하는데 영향을 미친다.