代码拉取完成,页面将自动刷新
package util
import "reflect"
func AppendDeduplicateCanNull[T comparable](slice []T, elems T) []T {
if !ArrayContains(slice, elems) {
slice = append(slice, elems)
}
return slice
}
func AppendDeduplicate[T comparable](slice []T, elems T) []T {
if !reflect.ValueOf(&elems).Elem().IsZero() && !ArrayContains(slice, elems) {
slice = append(slice, elems)
}
return slice
}
func ArrayContains[T comparable](array []T, e T) bool {
for _, v := range array {
if v == e {
return true
}
}
return false
}
func DifferenceSet[K comparable](a1, a2 []K) (d1, d2 []K) {
var vMap = map[K]*int{}
for _, v1 := range a1 {
vMap[v1] = Addr[int](1)
}
for _, v2 := range a2 {
if vMap[v2] == nil {
vMap[v2] = Addr[int](2)
} else {
vMap[v2] = Addr[int](0)
}
}
for k, v := range vMap {
if *v == 1 {
d1 = append(d1, k)
} else if *v == 2 {
d2 = append(d2, k)
}
}
return d1, d2
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。