변수 선언 및 사용

완료됨

Go에서 변수를 선언하고 사용하는 방법을 살펴보는 것으로 이 모듈을 시작하겠습니다. 변수를 선언하는 방법에는 여러 가지가 있습니다. 각각을 살펴보고 자신의 요구 사항 또는 스타일에 가장 적합한 것을 선택하면 됩니다. 변수에 대한 핵심 개념을 탐색하면서 일반적으로 다른 프로그래밍 언어에서 찾을 수 없는 Go와 관련된 몇 가지 사항을 살펴보겠습니다.

이 섹션에는 Visual Studio Code 또는 Go Playground에서 실행할 수 있는 코드 조각이 포함되어 있습니다.

변수 선언

변수를 선언하려면 var 키워드를 사용해야 합니다.

var firstName string

위의 문은 string 형식의 firstName이라는 변수를 선언합니다. (향후 섹션에서 데이터 형식에 관해 설명하겠습니다.) 이 예에서는 변수를 선언하는 가장 기본적인 방법을 보여 줍니다. 또 다른 변수를 선언하려면 이전 변수에 유사문을 추가하면 됩니다. 동일한 형식인 경우 한 줄에서 둘 이상의 변수를 선언할 수 있습니다.

var firstName, lastName string

변수 이름 뒤에 쉼표(,)를 추가하면 다른 변수를 선언하려 한다는 의미가 됩니다. 이 경우 이전 문은 string 형식의 firstNamelastName이라는 두 개의 변수를 선언합니다. int 형식의 세 번째 변수를 추가하려는 경우 코드는 다음과 같습니다.

var firstName, lastName string
var age int

이전 문을 작성하는 또 다른 방법은 다음과 같이 변수를 선언하는 전용 블록이 있는 것처럼 var 키워드 뒤에 괄호를 사용하는 것입니다.

var (
    firstName, lastName string
    age int
)

변수 초기화

현시점에서는 변수만 선언했지만, 초기 값이 필요한 경우도 있습니다. Go에서는 다양한 방법으로 변수를 초기화할 수 있습니다. 예를 들어 이전의 동일한 예제를 계속 진행하면 다음 코드를 사용하여 각 변수를 초기화할 수 있습니다.

var (
    firstName string = "John"
    lastName  string = "Doe"
    age       int    = 32
)

변수를 초기화하기로 결정한 경우, 변수를 값으로 초기화할 때 Go가 형식을 유추하므로 형식을 지정할 필요가 없습니다. 예를 들어 다음과 같이 변수를 선언하고 초기화할 수 있습니다.

var (
    firstName = "John"
    lastName  = "Doe"
    age       = 32
)

Go는 firstNamelastName 변수가 string 형식이고 age 변수가 int 형식임을 유추합니다.

변수를 초기화하는 다양한 방법

Go에서는 변수를 한 줄로 선언하고 초기화할 수 있습니다. 각 변수 이름을 쉼표로 구분하고 다음과 같이 모든 값(동일한 순서로)에 대해 동일한 작업을 수행합니다.

var (
    firstName, lastName, age = "John", "Doe", 32
)

변수를 선언하고 초기화할 수 있는 다른 방법이 있습니다. 이 방법은 Go에서 가장 일반적인 방법입니다. 우리가 사용한 동일한 예제는 다음과 같습니다.

package main

import "fmt"

func main() {
    firstName, lastName := "John", "Doe"
    age := 32
    fmt.Println(firstName, lastName, age)
}

참고

import "fmt" 문을 확인하세요. import 키워드를 사용하여 패키지의 콘텐츠를 범위로 가져옵니다. 코드에서 Println 메서드를 사용할 수 있도록 "fmt" 패키지를 가져오고 있습니다. 이후 단원에서 이 키워드를 좀 더 자세히 살펴보겠습니다.

위의 코드를 실행하여 변수를 선언하고 초기화하는 이 방법이 작동하는지 확인하세요.

여기서는 변수 이름을 정의한 직후 콜론 등호(:=)와 해당 값을 포함해야 합니다. 콜론 등호를 사용하는 경우 선언하는 변수는 새 변수여야 합니다. 콜론 등호를 사용하고 변수가 이미 선언되어 있으면 프로그램이 컴파일되지 않습니다. 사용 기간을 상수로 추가합니다(다음 섹션 참조). 단, 콜론 등호(:=)를 사용하여 시도하세요.

마지막으로 함수 내에서 콜론 등호를 사용할 수 있습니다. 함수 외부에서 변수를 선언하는 경우에는 var 키워드를 사용해야 합니다. 함수에 대해 잘 몰라도 됩니다. 함수는 다음 단원에서 소개하겠습니다.

상수 선언

코드에 상수라고 하는 정적 값이 필요한 경우가 있습니다. Go는 상수 사용을 지원합니다. 상수를 선언하는 키워드는 const입니다.

예를 들어 다음과 같이 상수를 선언할 수 있습니다.

const HTTPStatusOK = 200

변수와 마찬가지로 상수 형식은 할당된 값에서 유추됩니다. Go에서 상수 이름은 일반적으로 MixedCased 또는 모두 대문자로 작성됩니다.

한 블록에서 여러 상수를 선언해야 하는 경우 다음과 같이 할 수 있습니다.

const (
    StatusOK              = 0
    StatusConnectionReset = 1
    StatusOtherError      = 2
)

참고

Go에는 이 모듈에서 다루지 않는 iota라는 상수와 관련된 흥미로운 개념이 있습니다. 그러나 GitHub의 Go 위키에서 자세히 알아볼 수 있습니다. iota는 값이 순차적일 때 상수 정의를 단순화하기 위해 Go에서 사용하는 키워드입니다.

상수와 변수 사이에는 유사점도 있지만 몇 가지 중요한 차이점이 있습니다. 예를 들어 상수를 사용하지 않은 상태에서 해당 상수를 선언할 수 있으며 오류 메시지가 표시되지 않습니다. 콜론 등호를 사용하여 상수를 선언할 수는 없습니다. Go에서 이를 허용하지 않습니다.

변수를 선언만 하고 사용하지 않으면 Go에서 오류를 throw함

Go에서 기본적으로 명심해야 할 사항이 있습니다. Go에서는 변수를 선언만 하고 사용하지 않으면 일부 다른 프로그래밍 언어에서처럼 경고를 표시하는 것이 아니라 오류를 throw한다는 점입니다.

예를 들어 이전의 예제 중 하나로 돌아가 fmt.Println 호출을 제거하겠습니다.

func main() {
    firstName, lastName := "John", "Doe"
    age := 32
}

Visual Studio Code 또는 Go Playground에서 이 코드를 실행하면 변수를 선언하는 줄에서 오류가 발생하는 것을 알 수 있습니다. 다음 오류 메시지가 표시됩니다.

./main.go:4:2: firstName declared but not used
./main.go:4:13: lastName declared but not used
./main.go:5:2: age declared but not used

Go에서 선언하는 모든 변수는 어딘가에서 사용해야 한다는 점에 유의하세요.