// RemoveSliceDuplicate 切片去重
func RemoveSliceDuplicate(originals any) any {
temp := map[string]struct{}{}
switch slice := originals.(type) {
case []string:
result := make([]string, 0, len(originals.([]string)))
for _, item := range slice {
key := fmt.Sprint(item)
if _, ok := temp[key]; !ok {
temp[key] = struct{}{}
result = append(result, item)
}
}
return result
case []int64:
result := make([]int64, 0, len(originals.([]int64)))
for _, item := range slice {
key := fmt.Sprint(item)
if _, ok := temp[key]; !ok {
temp[key] = struct{}{}
result = append(result, item)
}
}
return result
default:
panic(any("未知的切片类型"))
}
}
golang 切片元素去重
最新推荐文章于 2024-06-05 10:49:44 发布
本文介绍了一种在Go语言中实现切片去重的方法,通过使用map来记录已存在的元素,有效地移除重复项。支持string和int64类型的切片。
4283

被折叠的 条评论
为什么被折叠?



