Language/Go

[Golang] Go 언어 변수와 상수

Young-Cow 2021. 11. 17. 11:36

Go 언어 변수와 상수

예제로 배우는 Go 프로그래밍

변수(var)


var 키워드를 사용하여 선언한다.

키워드 뒤에 변수명을 적고 그 뒤에 변수 타입을 적는다.

var i int   // a 라는 이름의 정수형 변수 선언

동적으로 할당도 가능하다.

초기값을 입력해주면 그 초기값에 알맞는 타입이 할당된다.

var i = 1       // 정수형이 할당된다.
var s = "hello" // 문자열이 할당된다.

동일한 타입의 변수들은 이름을 나열해서 지정 가능하다.

// 초기값을 지정하지 않을 수도 있다. 각 자료형 별 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 형 ""(빈 문자열)

여러 개의 변수를 보기 쉽게 정의할 수 있다.

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)


변수와 마찬가지로 키워드 뒤에 변수명, 변수 타입 순으로 선언한다.

const c int

동적으로 할당도 가능하다.

변수와는 약간 다르다. 소괄호로 묶고 나열하여 선언한다.

const (
    Samsung = "Samsung"
    Apple = "Apple"
    LG = "LG"
)

iota identifier 를 사용하면 Enum 열거형처럼 사용할 수 있다.

const (
    Jan = 1 + iota  // 1 (1 + 0(iota))
    Feb             // 2
    Mar             // 3 ...
    Apr
    May
)

정수 뿐만 아니라 부동소수점 타입에도 사용할 수 있고 계산식과 혼합해서 사용 가능하다.(비트연산도 가능하다)

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
)

변수 이름


  • 알파벳 뿐만 아니라 유니코드 문자도 사용할 수 있다.

참고 자료

728x90
반응형