Golang 使用 Generics 实现 array_intersect

94 阅读1分钟
func ArrayIntersect[T comparable](a []T, b []T) []T {
   set := make([]T, 0)
   hash := make(map[T]int)

   for _, v := range a {
      hash[v]++
   }

   for _, v := range b {
      if _, ok := hash[v]; ok {
         set = append(set, v)
      }
   }

   return set
}

参考: go.dev/blog/intro-…