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

相关推荐
chenqianghqu6 小时前
go语言SDK升级到1.27更新调试
golang
ttwuai8 小时前
Go开源后台管理系统推荐:怎么先排除 Fork、镜像和同名项目?
golang
参.商.1 天前
【Day 53】76. 最小覆盖子串
leetcode·golang
传奇开心果编程1 天前
【Go入门练中学】第2课:条件与循环
后端·学习·golang
传奇开心果编程1 天前
【Go入门练中学】第1课:从零开始
后端·学习·golang
报错小能手1 天前
GO语言接口 泛型 错误处理
golang
蓝宝石的傻话2 天前
MiBee Eye 蜂眼:把闲置的 Linux 小板做成一台能进国标平台的摄像头
golang·rust
我不会起名字3222 天前
万字总结Golang入门项目
数据结构·经验分享·算法·golang·项目实战·复盘
我不会起名字3223 天前
一天一道算法题(34):回溯法的经典例题(子集)
java·数据结构·python·算法·golang·深度优先·力扣
A心有千千结3 天前
GO 使用 OpenTelemetry 进行编译时插桩,实现零码注入
数据库·golang·可观测性·观测云