我的代码有效,但我确信它不是最佳的。
我正在构建一个Map [string]字符串,其中包含作为键的警报名称和作为值的instanceids。我有一个只有instanceids的数组。我需要从地图中删除任何具有与数组中的instanceids匹配的值的键。然后返回一个[]字符串警报名称。我的代码正在运行,但我认为很高兴看到我是否正确地做到了这一点。返回中的[]字符串是可选的,我可能只是使用地图。
感谢您的投入。
func CheckAlarms(alarmMap map[string]string, instances []string) (result []string) {
var AlarmList []string
for _, inst := range instances{
for k, v := range alarmMap{
if v == inst{
log.Printf("**** Match Found add alarm to delete list %s\n", k)
delete(alarmMap, k)
}
}
}
for k, v := range alarmMap{
var inst []string
AlarmList = append(AlarmList, k)
inst = append(inst, v)
}
log.Printf("end of function list length %d", len(AlarmList))
return AlarmList
}