计算机学习

您现在的位置是:首页 > go > 正文

go

go泛型--去重函数

hhb2023-01-11go148
package mainimport "fmt"func main() {   //字符串
package main

import "fmt"

func main() {
   //字符串的slice去重
   var a []string = []string{
      "a", "b", "c", "33", "b", "3", "b",
   }
   a = arrayUnique(a)
   fmt.Println(a)
   //整形的slice去重
   var b []int = []int{
      1, 2, 3, 2, 33, 1, 45,
   }
   b = arrayUnique(b)
   fmt.Println(b)
}

// slice去重
func arrayUnique[T int | string](list []T) []T {
   var result []T
   var mapList map[T]T
   mapList = make(map[T]T, 1)
   for _, val := range list {
      _, ok := mapList[val]
      if !ok {
         mapList[val] = val
         result = append(result, val)
      }
   }
   return result
}

去重结果

1673369478(1).png

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~