golang 求出这两个对象数组的2个差集,即存在其中一个数组,但是不存在于另一个数组
  f6j0WN1M39I3 2023年11月19日 13 0

代码来自 chatgpt

package main

import (
	"fmt"
	"reflect"
)

type Object struct {
	ID int
}

func main() {
	a := []Object{{1}, {2}, {3}}
	b := []Object{{2}, {3}, {4}}

	diffAB := diff(a, b)
	diffBA := diff(b, a)

	fmt.Println("In A not in B: ", diffAB)
	fmt.Println("In B not in A: ", diffBA)
}

// diff 函数找出在 s1 中存在,但在 s2 中不存在的元素
func diff(s1, s2 []Object) (diffSlice []Object) {
	mapS2 := make(map[int]bool)

	for _, item := range s2 {
		mapS2[item.ID] = true
	}

	for _, item := range s1 {
		if _, found := mapS2[item.ID]; !found {
			diffSlice = append(diffSlice, item)
		}
	}
	
	return
}



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

f6j0WN1M39I3