20 lines
271 B
Go
20 lines
271 B
Go
package moslice
|
|
|
|
func Uniq[T comparable](ts []T) []T {
|
|
if len(ts) < 2 {
|
|
return ts
|
|
}
|
|
|
|
outT := make([]T, 0)
|
|
seenT := make(map[T]struct{})
|
|
|
|
for _, t := range ts {
|
|
if _, ok := seenT[t]; !ok {
|
|
outT = append(outT, t)
|
|
seenT[t] = struct{}{}
|
|
}
|
|
}
|
|
|
|
return outT
|
|
}
|