// Package utils ----------------------------- // @file : unqiue.go // @author : JJXu // @contact : wavingbear@163.com // @time : 2024/9/12 下午5:03 // ------------------------------------------- package utils func Unique[T int | int8 | int32 | int64 | string](slice []T) []T { seen := make(map[T]bool) // 创建一个 map 来跟踪已经看到的元素 unique := make([]T, 0) // 创建一个新的切片来存储唯一的元素 for _, v := range slice { if _, ok := seen[v]; !ok { seen[v] = true // 标记元素为已见 unique = append(unique, v) // 将元素添加到唯一元素切片中 } } return unique }