변수 선언 및 사용
Go에서 변수를 선언하고 사용하는 방법을 살펴보는 것으로 이 모듈을 시작하겠습니다. 변수를 선언하는 방법에는 여러 가지가 있습니다. 각각을 살펴보고 자신의 요구 사항 또는 스타일에 가장 적합한 것을 선택하면 됩니다. 변수에 대한 핵심 개념을 탐색하면서 일반적으로 다른 프로그래밍 언어에서 찾을 수 없는 Go와 관련된 몇 가지 사항을 살펴보겠습니다.
이 섹션에는 Visual Studio Code 또는 Go Playground에서 실행할 수 있는 코드 조각이 포함되어 있습니다.
변수 선언
변수를 선언하려면 var
키워드를 사용해야 합니다.
var firstName string
위의 문은 string
형식의 firstName
이라는 변수를 선언합니다. (향후 섹션에서 데이터 형식에 관해 설명하겠습니다.) 이 예에서는 변수를 선언하는 가장 기본적인 방법을 보여 줍니다. 또 다른 변수를 선언하려면 이전 변수에 유사문을 추가하면 됩니다. 동일한 형식인 경우 한 줄에서 둘 이상의 변수를 선언할 수 있습니다.
var firstName, lastName string
변수 이름 뒤에 쉼표(,
)를 추가하면 다른 변수를 선언하려 한다는 의미가 됩니다. 이 경우 이전 문은 string
형식의 firstName
과 lastName
이라는 두 개의 변수를 선언합니다. 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는 firstName
및 lastName
변수가 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에서 선언하는 모든 변수는 어딘가에서 사용해야 한다는 점에 유의하세요.