aqi/utils/slice_unique.go
2024-06-18 18:09:39 +08:00

14 lines
316 B
Go

package utils
func UniqueSlice[T comparable](inputSlice []T) []T {
uniqueSlice := make([]T, 0, len(inputSlice))
seen := make(map[T]bool, len(inputSlice))
for _, element := range inputSlice {
if !seen[element] {
uniqueSlice = append(uniqueSlice, element)
seen[element] = true
}
}
return uniqueSlice
}