2장 변수 선언하기

    이번에는 go에서 변수 선언하는 방법을 알아볼게요.

    기본적인 방법 

    더보기

    var {변수 이름} {변수 타입}

    위와 같이 변수를 선언하는 게 일반적인 방법입니다. 그러면 직접 사용하는 코드를 보죠.

    package main
    
    import "fmt"
    
    func main() {
    
    	var a int = 0
    	var b string = "Hello Golang"
    	var c bool = false
    
    	fmt.Println(a, b, c)
    
    	a = 10
    	b = "It's funny"
    	c = true
    
    	fmt.Println(a, b, c)
    }

    위 코드를 실행시키면 https://go.dev/play/p/SMW_r7EuAYB

    0 Hello Golang false
    10 It's funny true

    요런 결과가 나오죠. 어렵지 않아요

    선언만 한 경우 에는 값이 어떤 값이?

    앞에서 말한 기본적인 방법은 변수를 선언하고 값을 할당하는 과정이 동시에 이루어 졌습니다. 그런데 만약 선언만하고 값을 할당하지 않았을 때 해당 변수는 어떤 값을 가질까요?

    package main
    
    import "fmt"
    
    func main() {
    var a int
    var b string
    var c bool
    
    fmt.Println(a, b, c)
    }

    이 코드를 실행시키면 https://go.dev/play/p/4qnSVmZE9Ql 

    0   false

    이런식으로 각 타입의 기본갑이 들어간 상태가 보입니다.

    선언 과 할당을 동시에 하는 :=

    위에서 변수를 선언하고 할당하는 건 다른 언어에도 있으니 이제는 좀더 golang 스러운 방법으로 변수를 선언하고 값을 할당해 보죠.

    package main
    
    import "fmt"
    
    func main() {
    	a := 10
    	b := "Hello"
    	c := false
    
    	fmt.Println(a, b, c)
    }

    위 코드를 실행하면 https://go.dev/play/p/ExnDmVgoDl5

    10 Hello false

    위 코드를 구체적으로 분석해 보죠.

    a := 10 는 var 키워드와 타입이 생략된 상태로 a 라는 변수에 10이라는 int 값을 저장하는 건데요. 이 코드에는 매우 특이한 점이 존재하는 데 변수의 타입을 지정하지 않았다는 거죠. 타입이 중요한 이유는 변수가 가리키는 메모리에서 어느 정도의 크기를 가질 지가 타입에 의해서 정해지는 데 위 코드는 타입이 명시적이지 않아서 오류가 발생하는 게 일반적입니다.

    그런데 오류가 발생하지 않는 건 컴파일러에서 자동으로 변수에 맞는 타입으로 추론하는 거에요.

    'golang' 카테고리의 다른 글

    3장 변수 타입 변환하기  (0) 2022.01.31
    Hello World 를 print한 프로그램 분석하기  (0) 2022.01.31
    1장 Hello World 출력하기  (0) 2022.01.25

    댓글