Golang 泛型定义类型的时候前面 ~ 代表什么意思

先看代码,定义一个简单的泛型 c1 里面一个 int ,定义一个函数goods 下面 main函数进行调用, 如果直接传int 类型是不会报错的,但是如果传自定义类型的b就会报错。

bash 复制代码
type c1 interface {
	int
}

func goods[T c1](a T) {
	fmt.Println(a)
}

type myint int

func main() {
	var a int = 1
	var b myint = 2
	goods(a)
	goods(b) error:myint does not satisfy c1 (possibly missing ~ for int in c1)compilerInvalidTypeArg
}

对面代码改成就不会有问题

bash 复制代码
type c1 interface {
	~int
}

解释

"~" 符号的类型则代表以该类型为底层类型(underlying type)的所有类型,这类带有 "~" 的类型也被称为 approximation elemen

相关推荐
wavemap12 小时前
先到先得:免费订阅一年ChatGPT Go会员
开发语言·chatgpt·golang
浮尘笔记13 小时前
Go并发编程核心:Mutex和RWMutex的用法
开发语言·后端·golang
百***060116 小时前
【Golang】——Gin 框架中的表单处理与数据绑定
microsoft·golang·gin
百***935016 小时前
【Golang】——Gin 框架中间件详解:从基础到实战
中间件·golang·gin
Tony Bai21 小时前
Go 2025 密码学年度报告:后量子时代的防御与 FIPS 的“纯 Go”革命
开发语言·后端·golang·密码学
Like_wen21 小时前
idea/goland 无法创建目标目录
java·golang
资深web全栈开发1 天前
Golang Cobra 教程:构建强大的CLI应用
开发语言·后端·golang
JCGKS1 天前
Go| excelize的流式迭代器
后端·golang·excel·excelize·流式读取·文件解析
自学AI的鲨鱼儿2 天前
cursor 使用 gvm管理的go的环境出现 Failed to find the “go“ binary in either GOROOT() 错误
golang·cursor·gvm
席万里2 天前
Go开源库gcurl实际生产级应用
开发语言·后端·golang