泛型函数与类型
1. 泛型简介
Go 从 1.18 开始支持泛型(Generics),允许函数和类型接受类型参数,从而实现更强的代码复用。
2. 泛型函数定义
泛型函数在函数名前使用类型参数(如 [T any]):
func PrintSlice[T any](s []T) {
for _, v := range s {
fmt.Println(v)
}
}
调用方式无需显式指定类型,Go 会自动推导:
PrintSlice([]int{1, 2, 3})
PrintSlice([]string{"a", "b", "c"})
3. 泛型类型定义
可以为结构体、接口等定义泛型类型:
type Pair[T any] struct {
First T
Second T
}
p := Pair[int]{First: 1, Second: 2}
4. 多类型参数
泛型函数/类型可以使用多个类型参数:
func Compare[T comparable](a, b T) bool {
return a == b
}
5. 泛型优势
- 减少重复代码
- 增强代码复用
- 保持类型安全
泛型的引入让 Go 更加现代化,能以更简洁的方式编写通用逻辑。
相关内容
- 什么是 Go Go 是由 Google 开发的一种开源编程语言,以简洁、高效、并发编程支持强著称,广泛应用于后端开发、云原生和微服务等领域。
- Go 的特点与适用场景 Go 语言以高并发、快速编译、简洁语法和强大标准库著称,适用于构建高性能网络服务、微服务架构和云原生应用。
- 安装 Go(Windows/Linux/macOS) 本节介绍如何在 Windows、Linux 和 macOS 上安装 Go 语言开发环境,包含安装步骤、验证方法及常见注意事项。
- 设置环境变量 本节介绍如何为 Go 语言配置环境变量,包括 GOPATH、GOROOT、PATH 等关键变量,适用于 Windows、Linux 和 macOS 系统。
- 第一个 Go 程序(Hello World) 本节将带你编写第一个 Go 程序“Hello, World”,帮助你快速了解 Go 的基础语法和程序结构。
- Go Modules 简介 本节介绍 Go Modules 的基本概念与用法,它是 Go 官方推荐的依赖管理方式,支持版本控制、依赖隔离和构建一致性。