2.2 변수와 상수
2.2.1 변수 선언
변수는 var 키워드로 선언하고 다음과 같이 var 다음에 변수 이름과 타입을 표기한다.
var 변수명 타입
Go는 대부분의 언어와 달리 변수 이름을 먼저 쓰고 그 다음에 타입을 표기한다.
▼ Go - 타입을 변수명 다음에 표기
var a int var b string
다른 언어와 비교해 보자.
▼ C - 타입을 변수명 앞에 표기
int a; char *b;
▼ 자바 - 타입을 변수명 앞에 표기
int a; String b;
이와 같은 순서로 변수를 선언하는 이유는 코드를 자연스럽게 읽기 위해서다. 코드를 읽을 때 var i int라는 구문을 보면 ‘변수 i를 int 타입으로 선언한다’는 뜻으로 자연스럽게 해석할 수 있다.
Note
비교적 최근에 만들어진 프로그래밍 언어는 타입을 변수명 다음에 표기하는 경우가 많다.
• 스위프트(Swift)는 타입을 변수명 다음에 표기한다.
var a: Int
var b: String
• 스칼라(Scala)는 타입을 변수명 다음에 표기한다.
var a: Int
var b: String
Go는 변수를 선언할 때 초깃값을 지정하지 않으면 제로값(zero value)으로 초기화된다. 이는 변수에 값이 할당되기 전에 가비지(garbage) 값이 할당되어 예상치 못한 결과가 발생하는 것을 방지한다.
• 정수 타입의 제로값: 0
• 실수(부동소수점) 타입의 제로값: 0.0
• 문자열 타입의 제로값: ""