Go进阶(8): map嵌套的两轮初始化

test := make(map[string]map[int]int)
test["go"][0] = 0 // error:assignment to entry in nil map

Note:这种map的嵌套的形式,make只初始化了map[string]T部分(T为map[int]int),所以赋值会出现错误.

正确的做法:

test := make(map[string]map[int]int)
test["go"] = make(map[int]int)
test["go"][0] = 0

更可靠的做法:

test := make(map[string]map[int]int)
if test["go"] == nil {
    test["go"] = make(map[int]int)
}
test["go"][0] = 0

 

你可能感兴趣的:(Go进阶(8): map嵌套的两轮初始化)