Go 언어 변수와 상수
예제로 배우는 Go 프로그래밍
변수(var)
var 키워드를 사용하여 선언한다.
키워드 뒤에 변수명을 적고 그 뒤에 변수 타입을 적는다.
1
| var i int // a 라는 이름의 정수형 변수 선언
|
동적으로 할당도 가능하다.
초기값을 입력해주면 그 초기값에 알맞는 타입이 할당된다.
1
2
| var i = 1 // 정수형이 할당된다.
var s = "hello" // 문자열이 할당된다.
|
동일한 타입의 변수들은 이름을 나열해서 지정 가능하다.
1
2
3
4
5
| // 초기값을 지정하지 않을 수도 있다. 각 자료형 별 Zero Value를 기본적으로 할당한다.
var a, b, c int
// 초기값을 지정할 수 있다. 순서대로 할당된다.
var d, e, f int = 1, 2, 3
|
초기값을 지정하지 않으면 아래와 같이 Zero Value로 초기화된다.
| Type | Zero Value |
|---|
| 숫자형 | 0 |
| 실수(부동소수점)형 | 0.0 |
| bool 형 | false |
| string 형 | ”“(빈 문자열) |
여러 개의 변수를 보기 쉽게 정의할 수 있다.
1
2
3
4
5
6
| var (
a = 5
c = 15.2
s = "str"
t int64 // type만 지정해서 선언, zero value로 초기화
)
|
짧은 선언, Short Assignment Statement (:=)
var i = 1 대신 i := 1 처럼 var를 생략하고 사용할 수 있다.
그러나 함수(func) 안에서만 사용 가능하고 함수 밖에서는 var 키워드를 사용해서 선언해야 한다.
상수(const)
변수와 마찬가지로 키워드 뒤에 변수명, 변수 타입 순으로 선언한다.
동적으로 할당도 가능하다.
변수와는 약간 다르다. 소괄호로 묶고 나열하여 선언한다.
1
2
3
4
5
| const (
Samsung = "Samsung"
Apple = "Apple"
LG = "LG"
)
|
iota identifier 를 사용하면 Enum 열거형처럼 사용할 수 있다.
1
2
3
4
5
6
7
| const (
Jan = 1 + iota // 1 (1 + 0(iota))
Feb // 2
Mar // 3 ...
Apr
May
)
|
정수 뿐만 아니라 부동소수점 타입에도 사용할 수 있고 계산식과 혼합해서 사용 가능하다.(비트연산도 가능하다)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| const (
_ = iota
KB int64 = 1 << (10 * iota) // 1 << (10 * 1) = 1024
MB // 1 << (10 * 2) = 1048576
GB // 1 << (10 * 3) = 1073741824
TB // 1 << (10 * 4) = 1099511627776
PB // 1 << (10 * 5) = 1125899906842624
)
const (
NOT_PROV = 1 << iota // 1 << 0 == 1
PROV // 1 << 1 == 2
PROV_ACT // 1 << 2 == 4
)
|
변수 이름
- 알파벳 뿐만 아니라 유니코드 문자도 사용할 수 있다.
참고 자료