map.go 617 B

123456789101112131415161718192021222324252627
  1. package util
  2. /**
  3. diff map的变更
  4. */
  5. func DiffMap(oldConfig, newConfig map[string]string) (deleteMap, addMap map[string]string, changeMap map[string][]string) {
  6. deleteMap = make(map[string]string, 0)
  7. changeMap = make(map[string][]string, 0)
  8. addMap = make(map[string]string, 0)
  9. for key, value := range oldConfig {
  10. newValue, isExist := newConfig[key]
  11. if !isExist {
  12. deleteMap[key] = value
  13. continue
  14. }
  15. if newValue != value {
  16. changeMap[key] = []string{value, newValue}
  17. }
  18. }
  19. for key, value := range newConfig {
  20. _, isExist := oldConfig[key]
  21. if !isExist {
  22. addMap[key] = value
  23. }
  24. }
  25. return
  26. }