🔥 기본 초기값(제로값)

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 영상

채널 보기
입력을 전처리하는 Functor - Contravariant와 contramap 이해하기 | 프로그래머를 위한 카테고리 이론
관점 지향 로깅 인터셉터 구현 및 전역 바인딩 전략 | NestJS 가이드
인터셉터와 RxJS로 캐시 시스템 구축하기 | NestJS 가이드
NestJS 커스텀 데코레이터, createParamDecorator 사용 | NestJS 가이드
NestJS 커스텀 데코레이터 인자 전달 및 파이프 검증 활용법 | NestJS 가이드
매번 ValidationPipe 복붙하세요? NestJS 전역 파이프로 한 번에 해결하기 | NestJS 가이드
Writer 펑터와 클라이슬리 카테고리 | 프로그래머를 위한 카테고리 이론
함수 객체의 보편적 구성 | 프로그래머를 위한 카테고리 이론