이번에는 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 |
댓글