🔥 기본 초기값(제로값)

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 미들웨어 기초 - 클래스 기반 미들웨어와 DI | NestJS 가이드
Product와 Coproduct가 Bifunctor인 이유 | 프로그래머를 위한 카테고리 이론
NestJS 파이프가 뭔가요? 컨트롤러를 보호하는 방법 | NestJS 가이드
펑터 타입 클래스 | 프로그래머를 위한 카테고리 이론
NestJS 표준 예외 처리와 HttpException | NestJS 가이드
펑터 합성 | 프로그래머를 위한 카테고리 이론