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

相关推荐
卜锦元2 小时前
Golang中make()和new()的区别与作用?
开发语言·后端·golang
海上彼尚3 小时前
Go之路 - 3.go的数据类型与转换
开发语言·后端·golang
龙门吹雪3 小时前
Go 语言包初始化顺序详解
golang·init·初始化顺序·依赖包·导入包
海上彼尚3 小时前
Go之路 - 4.go的集合[完整版]
开发语言·后端·golang
阿里巴啦4 小时前
从零搭建移动端数字人生成应用:React + Go + D‑ID 实战
react.js·golang·状态模式·数字人·did·ai移动端数字人
资深web全栈开发6 小时前
Go语言从1.18到1.25版本功能更新详解
开发语言·后端·golang
周杰伦_Jay7 小时前
【字节开源Golang框架Eino】技术详解:架构原理+实战落地+避坑指南(附代码)
架构·golang·开源
teamlet7 小时前
多域名备案审核展示模板
golang
互亿无线明明7 小时前
在 Go 项目中集成国际短信能力:从接口调试到生产环境的最佳实践
开发语言·windows·git·后端·golang·pycharm·eclipse
海上彼尚7 小时前
Go之路 - 5.go的流程控制
开发语言·后端·golang