Forráskód Böngészése

:recycle: 从切片中删除重复项时保留顺序

Liang Ding 3 éve
szülő
commit
39d0a9b08f
1 módosított fájl, 6 hozzáadás és 7 törlés
  1. 6 7
      kernel/util/slice.go

+ 6 - 7
kernel/util/slice.go

@@ -38,13 +38,12 @@ func ExcludeElem(slice, excludes []string) (ret []string) {
 }
 
 func RemoveDuplicatedElem(slice []string) (ret []string) {
-	m := map[string]bool{}
-	for _, str := range slice {
-		m[str] = true
-	}
-	ret = []string{}
-	for str, _ := range m {
-		ret = append(ret, str)
+	allKeys := make(map[string]bool)
+	for _, item := range slice {
+		if _, value := allKeys[item]; !value {
+			allKeys[item] = true
+			ret = append(ret, item)
+		}
 	}
 	return
 }