2 回答
TA贡献1797条经验 获得超6个赞
测试两个键:
columnsOrRows, ok := mapped["columns"].([]interface{})
if !ok {
columnsOrRows, ok = mapped["rows"].([]interface{})
}
if ok {
for _, columnOrRow := range columnsOrRows {
if columnOrRowValueIsString, ok = columnOrRow.(string); ok {
columnOrRowArray = append(columnOrRowArray, columnOrRowValueIsString)
}
}
}
TA贡献1794条经验 获得超7个赞
我不得不进行更广泛的检查。检查地图中是否存在任何可能的键(超过 2 个)。最后编写了一个实用函数来完成任务并使代码保持可读性。
func StringInSlice(s string, list []string) bool {
for _, item := range list {
if item == s {
return true
}
}
return false
}
func AnyKeyInMap(keys []string, keyMap map[string]interface{}) bool {
for k := range keyMap {
if StringInSlice(k, keys) {
return true
}
}
return false
}
用法是:
mapped := make(map[string]interface{})
mapped["rows"] = true
if AnyKeyInMap([]string{"rows", "columns"}, mapped) {
fmt.Println("exists")
}
你可以在这里玩: https ://play.golang.org/p/pz64YidEGMK
- 2 回答
- 0 关注
- 110 浏览
添加回答
举报