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
)
|
변수 이름
- 알파벳 뿐만 아니라 유니코드 문자도 사용할 수 있다.
참고 자료