golang slice去重
golang内没有类似python中集合的数据结构,所以去重这样的运算只能自己造轮子了。
随手写了两个示例,一个是string类型的,一个是int类型的
package main import "fmt" func main() { s1 := []string{"111", "aaa", "bbb", "ccc", "aaa", "ddd", "ccc"} ret := RemoveReplicaSliceString(s1) fmt.Println(ret) s2 := []int{1 ,2 ,5, 2, 3} ret2 := RemoveReplicaSliceInt(s2) fmt.Println(ret2) } func RemoveReplicaSliceString(slc []string) []string { /* slice(string类型)元素去重 */ result := make([]string, 0) tempMap := make(map[string]bool, len(slc)) for _, e := range slc{ if tempMap[e] == false{ tempMap[e] = true result = append(result, e) } } return result } func RemoveReplicaSliceInt(slc []int) []int { /* slice(int类型)元素去重 */ result := make([]int, 0) tempMap := make(map[int]bool, len(slc)) for _, e := range slc{ if tempMap[e] == false{ tempMap[e] = true result = append(result, e) } } return result }
输出: [111 aaa bbb ccc ddd] [1 2 5 3]
posted on 2019-05-09 16:50 WalkerWang731 阅读(2975) 评论(0) 编辑 收藏 举报