|
- package slice
-
- // Sub: a-b=?
- func SubInt64(a, b []int64) []int64 {
- blen := len(b)
- if blen == 0 {
- return a
- }
-
- alen := len(a)
- if alen == 0 {
- return a
- }
-
- bset := make(map[int64]struct{}, blen)
- for i := 0; i < blen; i++ {
- bset[b[i]] = struct{}{}
- }
-
- ret := make([]int64, 0, alen)
- for i := 0; i < alen; i++ {
- if _, has := bset[a[i]]; !has {
- ret = append(ret, a[i])
- }
- }
-
- return ret
- }
-
- func SubString(a, b []string) []string {
- blen := len(b)
- if blen == 0 {
- return a
- }
-
- alen := len(a)
- if alen == 0 {
- return a
- }
-
- bset := make(map[string]struct{}, blen)
- for i := 0; i < blen; i++ {
- bset[b[i]] = struct{}{}
- }
-
- ret := make([]string, 0, alen)
- for i := 0; i < alen; i++ {
- if _, has := bset[a[i]]; !has {
- ret = append(ret, a[i])
- }
- }
-
- return ret
- }
|