3 回答
TA贡献1815条经验 获得超6个赞
您可以执行以下操作:
var val map[string]int
val, exists := m[key]
if !exists {
val = make(map[string]int)
m[key] = val
}
如果您不需要下面的代码:val
if _,exists := m[key]; !exists {
m[key]=make(map[string]int)
}
TA贡献1784条经验 获得超2个赞
如果您不打算立即使用该值,那么在这里...
m := make(map[string]map[string]int)
if _, ok := m["unknown"]; !ok {
m["unknown"] = make(map[string]int)
}
以下是改进建议:为了保持整洁易懂,您可以定义自己的类型。例如,如果您的数据是“城市到老年人”的映射,我会这样做:
type Person map[string]int
type City map[string]Person
m := make(City)
if _, ok := m["Dhaka"]; !ok {
m["Dhaka"] = make(Person)
}
TA贡献1799条经验 获得超8个赞
func main() {
var testMap map[int]interface{}
testMap = make(map[int]interface{})
var addMap map[int]string
addMap = make(map[int]string)
addMap[1] = "999"
addMap[2] = "888"
Add(testMap, 111, addMap)
for key, val := range testMap {
fmt.Println(key)
for key2, val2 := range val.(map[int]string) {
fmt.Println(key2, val2)
}
}
}
func Add(_testMap map[int]interface{}, _key int, _val map[int]string) {
_, exist := _testMap[_key] // _ -> value
if exist == false {
//addmap
_testMap[_key] = _val
} else {
//whatever wanna to do
}
}
- 3 回答
- 0 关注
- 63 浏览
添加回答
举报