로즈마리

글 작성자: daily_zi

Go 언어에서 변수를 선언하는 방법은 var 키워드를 사용하는 방식과 자료형을 생략하는 방식 두 가지가 있다.

  •  var 변수명 자료형
var i int
var s string

var _study string = "go"
var age int = 28
var name string = "eun"

 

다른 컴파일 언어와는 달리 자료형이 변수명 뒤에 온다. 그리고 변수명은 문자와 숫자로 이루어진다.

단, 문자 또는 _ (밑줄 문자)로 시작해야 하며 숫자로 시작할 수 없다.

예를 들어 24hours 같은 변수는 선언할 수 없다.

자료형을 생략하면 변수의 자료형은 대입하는 값의 자료형으로 결정된다. 단 자료형을 생략할 때는 반드시 초깃값을 대입해야 한다.

var name = "eun"
var age = 28
var _study // 컴파일 에러

 

 

 


 

_ 짧은 변수 선언

:=를 사용하면 var와 자료형 키워드를 사용하지 않고 간단하게 변수를 선언하고 초기화할 수 있다. 여기서 변수의 자료형은 대입하는 값의 자료형으로 결정된다.

  • 변수명 := 값
age := 28
name := "eun"
var age = 28
int age //var 설정 안함 error -> var age int
var age int
age int = 10 //var 선언안함 error -> var age int
age := 10
var age //초깃값 선언안함 error -> var age=10
age = 10 //var 선언안함 error -> var age = 10

 


_변수 여러개 선언

변수를 여러 개 선언하고 초기화할 때는 변수와 값을 ,(콤마)로 구분하여 나열한다. 여기서 변수를 선언한 순서대로 값이 대입되며 반드시 선언한 변수의 개수와 대입할 값의 개수가 같아야 한다.

자료형을 지정하지 않으면 변수의 자료형은 대입하는 값의 자료형으로 결정된다.

  • var 변수1,  변수2 자료형 = 값1, 값2
  • var 변수1, 변수2 = 값1, 값2
var x, y int = 10, 20       // x = 10, y = 20
var age, name = 28, "eun" // age = 28, name = "eun"

 

  • 변수1, 변수2 := 값1, 값2
// a = 1, b = 0.3, c = "Hi!", d = true
a, b, c, d := 1, 0.3, "Hi!", true

 

변수가 선언된 뒤에도 변수 여러 개에 값을 대입할 수 있습니다. Go 언어에서는 이 기능을 병렬 할당(Parallel assignment)이라고 합니다.

  • 변수1, 변수2, 변수3 = 값1, 값2, 값3
var x, y int
var age int

x, y, age = 10, 20, 30  // x = 10, y = 20, age = 30: 병렬 할당

var 키워드와 ( )를 사용하면 변수 여러 개를 선언하고 초기화 할 수 있다.

변수의 자료형을 지정하거나 생략할 수 있다.  자료형을 지정하지 않으면 변수의 자료형은 대입하는 값의 자료형으로 결정된다.

var (
	x, y      int = 30, 40
	age, name     = 28, "eun" 
)

const (
    Visa = "Visa"
    Master = "MasterCard"
    Amex = "American Express"
)

 

_사용하지 않는 변수

Go 언어는 선언만 하고 사용하지 않는 변수가 있다던지, import만 하고 사용하지 않는 패키지가 있을 때 컴파일 에러가 발생한다.  이러한 특성은 개발자가 코드를 좀 더 간결하게 만들도록 유도하는 장점이 있지만 디버깅 과정에서 어쩔 수 없이 사용하지 않는 변수나 패키지를 사용해야 할 때도 있다.

Go 언어는 이러한 상황을 위해 밑줄 문자를 사용하여 변수나 패키지를 주석으로 만들지 않고 임시로 유지할 수 있다.

 

- 변수는 밑줄 문자에 대입하면 컴파일 에러가 발생하지 않는다.

package main

import "fmt"

func main() {
	a := 20
	b := "eun"

	_ = b // 사용하지 않는 변수로 인한 컴파일 에러 방지

	fmt.Println(a)
}

import로 패키지를 가져올 때 패키지 이름 앞에 _를 입력하면 패키지를 사용하지 않더라도 컴파일 에러가 발생하지 않는다.

package main

import "fmt"
import _ "time" // 사용하지 않는 패키지지만 컴파일 에러가 나지 않음

func main() {
	fmt.Println("Hello, world!")
}

 

'프로젝트 > go' 카테고리의 다른 글

Go 언어 입문_Method(메소드)  (0) 2019.09.09
Go 언어 입문_Struct(구조체)*  (0) 2019.09.06
Go 언어 입문_함수*  (0) 2019.09.06
Go 언어 입문  (1) 2019.09.02
jteeuwen/go-bindata  (0) 2019.06.24