unique_append now returns the number of unique elements appended
This commit is contained in:
8
misc.go
8
misc.go
@@ -16,12 +16,14 @@ func assert(cond bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ensure that the given elements are only appended to the given slice if they
|
// Ensure that the given elements are only appended to the given slice if they
|
||||||
// don't already exist.
|
// don't already exist. Returns the new slice, and the number of unique items appended.
|
||||||
func unique_append[T comparable](slc []T, items ...T) []T {
|
func unique_append[T comparable](slc []T, items ...T) ([]T, int) {
|
||||||
|
num_appended := 0
|
||||||
for _, item := range items {
|
for _, item := range items {
|
||||||
if !slices.Contains(slc, item) {
|
if !slices.Contains(slc, item) {
|
||||||
slc = append(slc, item)
|
slc = append(slc, item)
|
||||||
|
num_appended++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return slc
|
return slc, num_appended
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user