0
点赞
收藏
分享

微信扫一扫

golang 求出这两个对象数组的2个差集,即存在其中一个数组,但是不存在于另一个数组

陈情雅雅 2023-11-16 阅读 49

代码来自 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
}



举报

相关推荐

0 条评论