Golang

[Golang] nil map

CHERMINI 2023. 1. 21.

[Golang] nil map

map에 nil값으로 초기화 된 변수를 사용하다가 특이한 점을 발견했습니다.

 

Test code

package main

import (
	"fmt"
)

func accessMap(map1, map2 map[int]int) {
	fmt.Println("accessMap Start !")
	fmt.Println(map1[0], map2[0])
}

func writeMap(map1, map2 map[int]int) {
	fmt.Println("writeMap Start !")
	map1[0] = 1
	map2[0] = 1
	fmt.Println(map1[0], map2[0])
}

func main() {
	var (
		map1 map[int]int
		map2 map[int]int
	)
	map1 = nil
	map2 = make(map[int]int)

	accessMap(map1, map2)
	writeMap(map1, map2)
}

 

실행결과

accessMap Start !
0 0
writeMap Start !
panic: assignment to entry in nil map

goroutine 1 [running]:
main.writeMap(0x14000046708?, 0x1045daf5c?)
        /Users/kass/IdeaProjects/untitled/main.go:14 +0x78
main.main()
        /Users/kass/IdeaProjects/untitled/main.go:28 +0x64

Process finished with the exit code 2

 

결론

  • nil map에 access는 panic 발생 X
  • nil map에 write는 panic 발생 O

'Golang' 카테고리의 다른 글

[Golang] 이미지 파일 읽고 쓰기  (0) 2023.02.13
[Golang] csv 파일 읽고 쓰는 법  (0) 2023.02.12
[Golang] 파일 실행 권한 설정  (0) 2023.02.11
[Golang] JSON 파싱하는 법  (0) 2023.02.11
[Golang] http request 보내는 법  (0) 2023.02.11

댓글

💲 추천 글