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

相关推荐
Asus.Blogs1 小时前
为什么 import _ “github.com/go-sql-driver/mysql“ 要导入但不使用?_ 是什么意思?
sql·golang·github
程序员爱钓鱼3 小时前
跳转语句:break、continue、goto -《Go语言实战指南》
开发语言·后端·golang·go1.19
Clown9510 小时前
Go语言爬虫系列教程(一) 爬虫基础入门
开发语言·爬虫·golang
每天一个秃顶小技巧1 天前
02.Golang 切片(slice)源码分析(一、定义与基础操作实现)
开发语言·后端·python·golang
恋喵大鲤鱼1 天前
Golang 空结构体特性与用法
golang·空结构体
q567315231 天前
Go语言多线程爬虫与代理IP反爬
开发语言·爬虫·tcp/ip·golang
Chandler241 天前
Go语言即时通讯系统 开发日志day1
开发语言·后端·golang
李匠20241 天前
C++GO语言微服务基础技术②
开发语言·c++·微服务·golang
BUG制造机.1 天前
Go 语言 slice(切片) 的使用
开发语言·后端·golang
Go Dgg1 天前
Go语言实现豆瓣电影Top250爬虫
开发语言·爬虫·golang