Post

Go 변수 선언

Go 변수 선언

Golang(이하 Go)의 변수 타입도 내가 여태 공부했던 언어들의 자료형과 크게 다르지 않았다. 다만 내가 제대로 공부를 안해서 잘 모르는건지 조금 생소한 타입들이 있었다.하지만 이는 아직 중요성을 크게 느끼지 못했기 때문에 따로 서술하지 않는다.(나중에 중요하다고 생각되면 따로 추가) 따라서 변수 선언부분만 훑어보고 지나간다.

변수 선언

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var num int // 초기화를 하지 않은채 num 변수를 int type으로 선언한다.

var num int = 10 // 10으로 초기화한 int type num 변수

var num = 10 // type을 따로 지정하지 않았지만 두번째 선언과 같다
var name = "JJ" // string type의 name 변수 선언
// Err! 
var num // type따로 명시해주지 않았을 땐 무조건 값을 초기화 시켜줘야 된다.

num := 10 // 따로 var이나 type을 명시해주지 않고 := 구문을 통해 변수를 선언할 수 있다.

// 또한 Go에서는 (,)를 사용해 한 라인에 여러 개의 변수를 선언할 수 있다.
var num1,num2 int = 1,2

var num,name = 1,"JJ"

num,name := 1,"JJ"

Go에서 변수 선언 시 주의할 점

import한 package나 선언한 변수를 사용하지 않으면 컴파일 시 에러가 난다. 하지만 모든 변수나 package들을 개발 중 활용할 수는 없는법(Ex.특정 function이 동작하는지 확인하기 위해 디버깅을 해볼 때) 이를 해결하기 위한 방법이 있다. 아래의 예시를 보자

1
2
3
4
5
6
7
8
import "fmt" // C++의 #include<iostream>과 유사하다

func main(){
    
    var num =1     // int num =1
    //fmt.Println("num") //Console에(1)출력
}

위의 코드는 다른 일반적인 언어에서는 에러가 발생할 일이 없다. 물론 출력값도 없다. fmt도 쓰지 않고(주석으로 막아놨기 때문에) num도 선언하고 사용하지 않는다. 따라서 go에서는 에러가 발생한다. 그럼 선언해놓고 사용하지 않는 변수나 package는 어떻게 관리할까? 아래를 보자

1
2
3
4
5
6
7
import _"fmt"

func main(){
    var num = 1
    _ = num
}

그저 사용하지 않는 package는 앞에 _를 붙여놓고 사용하지 않는 변수는 ( _ = 변수) 를 통해 컴파일 에러를 방지시킨다.

This post is licensed under CC BY 4.0 by the author.