[Go] Go 언어 예제와 기본 문법 정리 2탄
(변수 var, 상수 const)
(Go 언어 버전 : 1.13.7, 글쓴날 : 2020.02.16)
* 이 글은 글쓴이가 공부한 내용을 정리하며 올리는 글입니다.
* 글의 내용은 공식 홈페이지 및 튜토리얼을 기반으로 공부하여 작성하였습니다.
* Go 언어가 처음이시라면 ☞ [Go] Go 언어 소개와 설치 및 컴파일 방법
* 1탄을 보고 싶으시다면 ☞ [Go] Go 언어 예제와 기본 문법 정리 1탄
Go 언어 기본 문법 정리
1) 변수
Go 언어에서 변수 선언을 할 때는 var 키워드를 사용하시면 되며 타입(자료형)을 마지막에 적어줍니다.
(ex)
1
2
3
4
5
6
7
8
9
10
|
package main
import "fmt"
func main() {
var name string
var age int
fmt.Print(name, age)
}
|
타입(자료형)이 같다면 변수를 여러 개 선언하실 수 있으며, 선언과 동시에 초기화도 바로 가능합니다.
만약 초기화를 바로 할 경우 타입(자료형)을 생략할 수 있습니다. (생략된 타입(자료형)은 초기화할 값에 의해 결정됩니다.)
(ex)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package main
import "fmt"
func main() {
var one, two, three int // 타입(자료형)이 같을 시 변수 여러 개 선언
one = 1
two = 2
three =3
var four, five, six int = 4, 5, 6 // 선언과 동시에 초기화
var seven, eight, nine = 7, 8, 9 // 초기화 시 타입(자료형) 생략 가능
fmt.Println(one, two, three)
fmt.Println(four, five, six)
fmt.Print(seven, eight, nine)
}
|
함수 안에서 변수 선언 시 := 을 사용하면 var 키워드 및 타입(자료형)을 생략하실 수 있습니다.
반드시 함수 안에서 사용하셔야 하며 함수 밖에서 사용 시 에러가 발생하므로 주의하셔야 합니다.
(ex)
1
2
3
4
5
6
7
8
9
10
11
|
package main
import "fmt"
// one, two, three := 1, 2, 3 에러 발생!
func main() {
ten, hundred, thousand := 10, 100, 1000
fmt.Print(ten, hundred, thousand)
}
|
다른 타입(자료형)을 가진 변수를 여러 개 생성하실 때는 var () 안에 선언하실 수 있습니다.
(보통 연관이 있는 변수끼리 묶어 사용합니다.)
(ex)
1
2
3
4
5
6
7
8
9
10
11
12
|
package main
import "fmt"
func main() {
var (
name string = "Minchan"
age int = 24
)
fmt.Print(name, age)
}
|
* 변수 선언 후 초기화를 하지 않는다면?
Go 언어에서 변수 선언 후 초기화를 하지 않으면 각 타입(자료형)의 기본값(int : 0, string : "", bool : false)으로 자동 초기화됩니다.
(ex)
1
2
3
4
5
6
7
8
9
|
package main
import "fmt"
func main() {
var ten, hundred, thousand int
fmt.Print(ten, hundred, thousand) // 0 0 0이 출력됩니다.
}
|
2) 상수
Go 언어에서 상수 선언을 할 때는 const 키워드를 사용하시면 되며 타입(자료형)을 적어주시고 초기화를 해주시면 됩니다.
(ex)
1
2
3
4
5
6
7
8
9
|
package main
import "fmt"
func main() {
const name string = "Minchan"
fmt.Print(name)
}
|
* 상수 선언 시 주의할 점
변수의 경우 초기화를 나중에 해도 되지만, 상수의 경우엔 선언 시 무조건 초기화를 해주셔야 합니다. 그렇지 않으면 에러가 발생합니다!
(ex)
1
2
3
4
5
6
7
8
9
10
|
package main
import "fmt"
func main() {
const name string = "Minchan"
// const age int 에러 발생!
fmt.Print(name)
}
|
타입(자료형)의 경우에는 생략하실 수 있으며, 이 경우 변수 선언과 마찬가지로 생략된 타입(자료형)은 초기화할 값에 의해 결정됩니다.
(ex)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
package main
import "fmt"
func main() {
const (
name = "Minchan"
age = 24
country = "Korea"
isAdult = true
)
fmt.Print(name, age, country, isAdult)
}
|
* iota 예약어를 사용한 Go 언어의 열거형 표현
Go 언어에서는 열거형을 지원하지 않습니다.
따라서, 상수 선언 시 0부터 1씩 증가하는 값들을 할당하고 싶다면 iota 예약어를 사용해 열거형을 표현하실 수 있습니다.
또는, iota 예약어를 사용하여 자동으로 변하는 값을 할당하도록 응용하실 수도 있습니다.
(ex)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package main
import "fmt"
func main() {
const (
_ = iota // 0 생략
one
two
three
four
five
)
fmt.Print(one, two, three, four, five) // 1, 2, 3, 4, 5가 출력됩니다.
}
|
여기까지 Go 언어 예제와 기본 문법 정리 2탄이었습니다.
이번 2탄에서는 Go 언어의 변수와 상수에 대하여 자세히 알아보았습니다.
다음 3탄에서는 2탄에서 다루지 않은 예제와 Go 언어의 문법에 대해 알려드리도록 하겠습니다.
감사합니다!
'Deprecated' 카테고리의 다른 글
[Realm] Realm이란 무엇인가? (2) | 2020.02.22 |
---|---|
[Go] Go 언어 예제와 기본 문법 정리 3탄(조건문 if, switch) (2) | 2020.02.17 |
[Python] Python 소개와 설치 방법 (4) | 2020.02.14 |
[Go] Go 언어 예제와 기본 문법 정리 1탄(패키지, 임포트와 익스포트, 세미콜론, 주석) (0) | 2020.02.13 |
[Go] Go 언어 소개와 설치 및 컴파일 방법 (4) | 2020.02.12 |