Go에서 지도의 0 값은 nil입니다. 이는 초기화되지 않은 지도를 의미합니다. nil 맵에 값을 저장하면 런타임 패닉이 발생합니다. 다음 예에서 이를 확인할 수 있습니다.
func main() { var data = map[string]map[string]string{} data["a"]["w"] = "x" println(data) }
이 코드는 런타임 시 "nil 맵의 항목에 할당" 오류와 함께 패닉이 발생합니다. 이 문제를 방지하려면 값을 할당하기 전에 아래와 같이 맵을 명시적으로 초기화하세요.
func main() { var data = map[string]map[string]string{} data["a"] = make(map[string]string) data["a"]["w"] = "x" println(data) }
이 예에서 make(map[string]string)은 map[string 유형의 새로운 빈 맵을 생성합니다. ]string.
중첩 맵을 초기화하는 또 다른 방법은 복합 리터럴을 사용하는 것입니다.
func main() { var data = map[string]map[string]string{ "a": map[string]string{}, "b": map[string]string{}, "c": map[string]string{}, } data["a"]["w"] = "x" println(data) }
두 방법 모두 중첩된 맵을 사용하여 런타임 패닉을 일으키지 않고 값을 저장할 수 있습니다.
위 내용은 Go에서 중첩 맵을 안전하게 사용하고 런타임 패닉을 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!