Files
ezbookkeeping/pkg/utils/slices.go
T
2020-12-14 00:03:00 +08:00

39 lines
660 B
Go

package utils
func Int64SliceMinus(s1, s2 []int64) []int64 {
if s1 == nil {
return nil
}
s2ItemsMap := make(map[int64]bool)
var ret []int64
for i := 0; i < len(s2); i++ {
s2ItemsMap[s2[i]] = true
}
for i := 0; i < len(s1); i++ {
if _, exists := s2ItemsMap[s1[i]]; !exists {
ret = append(ret, s1[i])
}
}
return ret
}
func ToUniqueInt64Slice(items []int64) []int64 {
var uniqueItems []int64
itemExistMap := make(map[int64]bool)
for i := 0; i < len(items); i++ {
item := items[i]
if _, exists := itemExistMap[item]; !exists {
uniqueItems = append(uniqueItems, item)
itemExistMap[item] = true
}
}
return uniqueItems
}