golang slice去重
Posted walkerwang731
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]
以上是关于golang slice去重的主要内容,如果未能解决你的问题,请参考以下文章