在 Go 中,映射的零值為 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[strin g的新空映射]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中文網其他相關文章!