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

相关推荐
不会画画的画师1 小时前
Go开发指南:io/ioutil包应用和迁移指南
开发语言·后端·golang
youliroam3 小时前
ESP32-S3+OV2640简单推流到GO服务
开发语言·后端·golang·esp32·ov2640
码luffyliu3 小时前
从 2 小时价格轮询任务通知丢失,拆解 Go Context 生命周期管控核心
后端·golang·go
blurblurblun7 小时前
Go语言特性
开发语言·后端·golang
Y.O.U..7 小时前
Go 语言 IO 基石:Reader 与 Writer 接口的 “最小设计” 与实战落地
开发语言·后端·golang
思成Codes7 小时前
Gin 框架:*gin.Engine 主要方法
后端·golang·gin
帅那个帅9 小时前
go的雪花算法代码分享
开发语言·后端·golang
IT艺术家-rookie10 小时前
golang--测试
golang
linksinke11 小时前
在windows系统上搭建Golang多版本管理器(g)的配置环境
开发语言·windows·golang
卜锦元12 小时前
Golang后端性能优化手册(第二章:缓存策略与优化)
开发语言·数据库·后端·性能优化·golang