🔥 기본 초기값(제로값)

213자
3분

Go 언어에서는 변수를 선언하면서 초기값을 명시적으로 지정하지 않으면 해당 변수에 제로 값 이 할당된답니다. 제로 값은 변수의 타입에 따라 다르게 설정되지요. 어떤 값들이 있는지 살펴보도록 해요!

  • 숫자형 타입(numeric types)의 제로 값은 0입니다.
  • 불리언 타입(boolean type)의 제로 값은 false랍니다.
  • 문자열 타입(string)의 제로 값은 "" (빈 문자열)이에요.

이제 코드 예제를 통해 제로 값이 어떻게 적용되는지 확인해 보겠습니다.

go
package main
 
import "fmt"
 
func main() {
	var i int      // 정수형 변수 i 선언
	var f float64  // 실수형 변수 f 선언
	var b bool     // 불리언 변수 b 선언
	var s string   // 문자열 변수 s 선언
	fmt.Printf("%v %v %v %q\n", i, f, b, s)  // 변수의 값을 출력
}
 
go
package main
 
import "fmt"
 
func main() {
	var i int      // 정수형 변수 i 선언
	var f float64  // 실수형 변수 f 선언
	var b bool     // 불리언 변수 b 선언
	var s string   // 문자열 변수 s 선언
	fmt.Printf("%v %v %v %q\n", i, f, b, s)  // 변수의 값을 출력
}
 

위 코드에서는 각 타입별로 변수를 선언하였지만, 초기값은 지정하지 않았어요. 이 경우 Go 컴파일러는 다음과 같이 제로 값을 자동으로 할당합니다.

  • i는 정수형이므로 0이 할당되겠죠?
  • f는 실수형이므로 역시 0이 할당될 거예요.
  • b는 불리언이므로 false가 할당된답니다.
  • s는 문자열이므로 "" (빈 문자열)이 할당되는 거죠.

이 코드를 실행하면 터미널에는 다음과 같은 출력 결과가 나타날 겁니다.

text
0 0 false ""
text
0 0 false ""

보시다시피 각 변수에는 해당 타입의 제로 값이 초기값으로 설정되었어요. 이처럼 Go 언어는 변수 선언 시 초기값을 지정하지 않아도 자동으로 제로 값을 할당하므로, 변수를 사용하기 전에 반드시 초기값을 설정해야 한다는 걱정은 하지 않아도 됩니다. 그러나 되도록이면 명시적인 초기값이 있는게 좋겠죠?

YouTube 영상

채널 보기
NestJS 모듈 시스템 기초와 구조 | NestJS 가이드
쌍대곱, 코프로덕트 | 프로그래머를 위한 카테고리 이론
NestJS 미들웨어 기초 - 클래스 기반 미들웨어와 DI | NestJS 가이드
곱타입 - 튜플과 레코드(구조체) | 프로그래머를 위한 카테고리 이론
관계로 정의하는 곱과 쌍대곱의 기초 | 프로그래머를 위한 카테고리 이론
모듈과 프로바이더 | NestJS 가이드
쌍대성과 비대칭성 | 프로그래머를 위한 카테고리 이론
미들웨어 적용과 라우팅 | NestJS 가이드