学校排行榜

(0)

投一票

Go泛型实践 - 去重函数 官网

利用Go泛型可实现切片去重功能,不用考虑切片元素的类型。 package mainimport "fmt"// 泛型函数用于切片去重func unique[T comparable](slice []T) []T { result := make([]T, 0) seen := make(map[T]bool) for _, v := range slice { if!seen[v] { result = append(result, v) seen[v] = true } } return result}func main() { numbers := []int{1, 2, 2, 3, 4, 4, 5} uniqueNumbers := unique(numbers) fmt.Println("去重后的整数切片:", uniqueNumbers) // 输出: 去重后的整数切片: [1 2 3 4 5] fruits := []string{"apple", "banana", "apple", "cherry"} uniqueFruits := unique(fruits) fmt.Println("去重后的字符串切片:", uniqueFruits) // 输出: 去重后的字符串切片: [apple banana cherry]} 泛型类型 `T` 必须是 `comparable` 类型,因为要作为map的键。
专业
评论
新闻
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。