변수의 기본 특징 (중요)
그래서 지정된 주소가 메모리 상에서 변수 위치의 시작점이 되고 그 시작점부터 변수의 사이즈만큼 크기가 할당되어 끝점이 지정된다고 볼 수 있다. 사이즈는 타입에 의해 결정된다. 각 타입은 사이즈가 정해져있다.
변수의 범위
- 변수의 범위는 변수가 지정된 중괄호 안이다. 그래서 중괄호 밖에서 해당 변수를 호출하면 변수가 선언되지 않았다는 에러가 발생한다.
var g int = 10
func main() {
var m int = 20
{
var s int = 50
fmt.Println(m, s, g)
}
m = s + 20 // 여기서 s는 s가 선언되었던 중괄호{} 밖을 이미 벗어나 사라진 상태
}
여기서 s는 s가 선언되었던 중괄호 {} 밖을 벗어나 이미 사라진 상태이다. 반면에 m은 m이 선언되었던 main함수의 중괄호 안에 있으므로 아직 살아있다. 또한, 가장 위에 g 변수는 main함수 바깥에 선언되어 위치의 제약없이 사용이 가능하며 위 패키지 내에서는 어디에서나 사용이 가능하다. 이를 GO언어에서는 패키지 전역 변수라고 부른다.