Golang string list operations (finding inclusion, intersection, union, difference)

func ContainsString(src []string, dest string) bool {
    
    
	for _, item := range src {
    
    
		if item == dest {
    
    
			return true
		}
	}
	return false
}

// DifferenceStrings 取前者src与后者dest两个字符串列表的差集
func DifferenceStrings(src []string, dest []string) []string {
    
    
	res := make([]string, 0)
	for _, item := range src {
    
    
		if !ContainsString(dest, item) {
    
    
			res = append(res, item)
		}
	}
	return res
}

// IntersectionStrings 取两个字符串列表的交集
func IntersectionStrings(src []string, dest []string) []string {
    
    
	res := make([]string, 0)
	for _, item := range src {
    
    
		if ContainsString(dest, item) {
    
    
			res = append(res, item)
		}
	}
	return res
}

// UnionString 取两个字符串列表的并集
func UnionStrings(src []string, dest []string) []string {
    
    
	res := make([]string, 0)
	res = append(res, src...)
	for _, item := range dest {
    
    
		if !ContainsString(res, item) {
    
    
			res = append(res, item)
		}
	}
	return res
}

Guess you like

Origin blog.csdn.net/qq_38923792/article/details/125604468