将两个 yaml 文件解组到两个不同的映射后,我想比较两个映射的键(外部键和内部键,因为它是嵌套映射),以及第一个映射“configMap”中是否存在任何键(外部或内部键)和第二张地图“userconfigMap”中不存在,我想将该密钥附加到第二张地图中的正确位置。
尝试像这样迭代地图,但无法继续实施,因为我是 golang 的新手。
for k, v := range configMap {
for k1, v1 := range userconfigMap {
if configMap[k] = userconfigMap[k1] {
if configMap[k].(map[string]interface{})[v] =
userconfigMap[k1].(map[string]interface{})[v1] {
}
else {
userconfigMap[k1].append(v)
}
}
}
}
示例 yaml 文件 configMap yaml 文件:
config:
test1: "test1"
test2: "test2"
http_port: 30008
https_port: 32223
userconfigMap yaml 文件:
config:
test1: "test1"
http_port: 30008
https_port: 32223
我使用映射字符串接口进行解组
您可以检查 go with 中是否存在地图键_, found := map[key]
,如果没有,则将密钥添加到第二个地图:
for k1 := range configMap {
if _, found := userconfigMap[k1]; !found {
userconfigMap[k1] = configMap[k1]
}
if v, ok := configMap[k1].(map[string]interface{}); ok {
if _, ok := userconfigMap[k1].(map[string]interface{}); !ok {
log.Fatal("userconfigMap[" + k1 + "] is not a map[string]interface{}")
}
for k2 := range v {
if _, found := userconfigMap[k1].(map[string]interface{})[k2]; !found {
userconfigMap[k1].(map[string]interface{})[k2] = v[k2]
}
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)