Golang实习切片、结构体切片去重
// removeRepeatElement 去除slice中相同的元素
func removeRepeatElement(slc []string) []string {
result := []string{} //存放返回的不重复切片
tempMap := map[string]byte{} // 存放不重复主键
for _, e := range slc {
l := len(tempMap)
//当e存在于tempMap中时,再次添加是添加不进去的,因为key不允许重复
tempMap[e] = 0
//如果上一行添加成功,那么长度发生变化且此时元素一定不重复
if len(tempMap) != l { // 加入map后,map长度变化,则元素不重复
result = append(result, e) //当元素不重复时,将元素添加到切片result中
}
}
return result
}