선언 및 초기화 (Declare & Initialize)
//선언
var a int
//선언과 동시에 초기화
var b int = 4
처음 변수 a 의 경우 초기값을 할당하지 않았으므로 정수형은 0, 문자형은 “”, 불리언은 false 로 초기화된다. 이렇게 이를 zero value라고 한다. 이때 할당하는 메모리의 모든 bit는 0으로 리셋된다. 메모리에 int 타입 크기에 해당하는 공간이 생기고,그 공간이 위치한 메모리 시작 주소를 a라는 이름로 지칭한다.
만약에 변수 b를 선언하면 컴퓨터는 메모리에 int 타입 크기에 해당하는 공간을 할당하고, 그 공간이 위치한 메모리 시작 주소를 b로 지칭한다. 그리고 해당 메모리 공간에 4라는 값을 복사한다.
b = 10
만약 위의 변수 b의 값을 10으로 대입 연산자 = 를 이용해 10으로 바꾸면 b의 메모리 시작 주소부터 int 타입만큼의 공간에 값 10 을 복사한다.
golang에서의 nil
위에서 언급했다싶이 zero value는 명시적인 초기값을 할당하지 않고 변수를 만들었을 때 , 해당 변수가 갖게 되는 값이다. 이때 nil은 포인터 , 인터페이스, 맵, 슬라이스 ,채널, 함수의 zero value이다.
따라서 정수 , 문자 , 불리언 타입은 nil을 가질 수 없다.
'Golang' 카테고리의 다른 글
[Go] go build 명령어를 사용해 개발,상용환경 분리하기 (0) | 2023.08.03 |
---|---|
[Go] Golang 환경변수, 파일, 명령어 (0) | 2023.08.03 |