go语言中在两个/多个切片、数组中获取并集的示例代码
下面介绍两个切片或数组中获取并集示例的方法
思路:
先把两个或多个切片数据合并拼接
然后在去重
测试示例代码
package controllers
import (
"fmt"
)
// TestController is a test control
type TestController struct {
//beego.Controller
BaseController
}
func (c *TestController) Aaa() {
//并集
a := []string{"Hello", "No", "Zongscan"}
b := []string{"Hello", "Yes", "Zongscan"}
d := []string{}
d = append(a, b...)
fmt.Println("合集1: ", d)
//切片去重 : 把上面的两切片合集数据重复的只留一个
//可以写成公共函数调用
m := make(map[string]struct{}, 0)
newD := make([]string, 0)
for _, v1 := range d {
if _, ok := m[v1]; !ok {
newD = append(newD, v1)
m[v1] = struct{}{}
}
}
fmt.Println("合集处理后的并集: ", newD)
}
效果图:
相关文章