我必须处理大量带有 int 键的映射,其中包含指向不同数据类型的指针。我需要一个函数(而不是每种映射类型 10 个函数)来遍历这些映射并获取最大和最小键值。
2 回答
小唯快跑啊
TA贡献1863条经验 获得超2个赞
这就是我想出来的。它也可能适用于其他地图类型:
它允许传入任何类型为 map[int]*somepointer 的映射
不需要类型断言(在本例中)
-
func getMaxKey(inout interface{}) int {
auxMap:= make(map[int]string)
body, _ := json.Marshal(inout)
json.Unmarshal(body, &auxMap)
maxKey := 0
for key,_ := range auxMap {
if key > maxKey {
maxKey = key
}
}
return maxKey
}
func getMinKey(inout interface{}) int {
auxMap:= make(map[int]string)
body, _ := json.Marshal(inout)
json.Unmarshal(body, &auxMap)
minKey := 0
for key,_ := range auxMap {
if key < minKey || minKey == 0 {
minKey = key
}
}
return minKey
}
- 2 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消