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

相关推荐
黑金IT2 小时前
抢占GPU ECS方案节省60-90%的成本
golang·gpu服务器
疯狂的程需猿3 小时前
Go语言高性能关键词100%匹配:比Regex快500倍的AC自动机实现
golang·ac自动机
raoxiaoya4 小时前
用golang开发AI Agent项目,有哪些框架可以选择
开发语言·人工智能·golang
moxiaoran57535 小时前
Go语言中的运算符汇总
golang
bing.shao6 小时前
Golang HTTP Restful 接口鉴权设计
http·golang·restful
古城小栈6 小时前
Go 微服务框架 Kratos:从快速上手到生产级实践
微服务·golang
raoxiaoya6 小时前
ADK-Go:Golang开发AI Agent
开发语言·人工智能·golang
ldmd2847 小时前
Go语言实战:入门篇-6:锁、测试、反射和低级编程
开发语言·后端·golang
bing.shao7 小时前
Golang中实现基于角色的访问控制(RBAC)
开发语言·后端·golang
why1517 小时前
面经整理——Go
开发语言·后端·golang