HelloMinchan
처음처럼
HelloMinchan
LinkedIn
전체 방문자
오늘
어제
  • 분류 전체보기 (306)
    • Backend (4)
      • NestJS (1)
      • Express (1)
      • Spring (2)
    • Infrastructure (1)
      • AWS (1)
    • Frontend (1)
      • Next.js (1)
    • Language & Runtime (4)
      • Java (2)
      • Node.js (2)
    • Computer Science (8)
      • Computer Networks (3)
      • Operating Systems (4)
      • OOP (1)
    • 독서 (4)
      • 데이터 중심 애플리케이션 설계 (3)
      • 객체지향의 사실과 오해 (1)
    • 회고 (4)
      • Project (2)
      • Career (2)
    • Deprecated (280)

채널

  • GitHub
  • LinkedIn

최근 글

태그

  • 백준C++
  • back-end
  • 프로그래머스Python
  • 프로그래머스C++
  • 백준
  • Baekjoon Online Judge
  • 데이터베이스
  • 프로그래밍
  • front-end
  • 백엔드
  • Database
  • 프로그래머스
  • Algospot
  • 백준Go
  • 개발자
  • 코딩
  • programmers
  • 알고스팟Python
  • 알고스팟
  • 백준Python

최근 댓글

인기 글

hELLO
HelloMinchan

처음처럼

[Go] Go 언어 예제와 기본 문법 정리 2탄(변수 var, 상수 const)
Deprecated

[Go] Go 언어 예제와 기본 문법 정리 2탄(변수 var, 상수 const)

2020. 2. 16. 23:01

Copyright (c) 2009 The Go Authors. All rights reserved. Supported by Google

[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
    'Deprecated' 카테고리의 다른 글
    • [Realm] Realm이란 무엇인가?
    • [Go] Go 언어 예제와 기본 문법 정리 3탄(조건문 if, switch)
    • [Python] Python 소개와 설치 방법
    • [Go] Go 언어 예제와 기본 문법 정리 1탄(패키지, 임포트와 익스포트, 세미콜론, 주석)
    HelloMinchan
    HelloMinchan
    Though you should not fear failure, You should do your very best to avoid it.

    티스토리툴바