[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 |
댓글