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

相关推荐
u***28477 分钟前
golang debug调试
开发语言·后端·golang
T0uken41 分钟前
Go + Node.js 全栈单文件部署方案
golang·node.js·状态模式
小画家~1 小时前
第三十四:golang 原生 pgsql 对应操作
android·开发语言·golang
捧 花1 小时前
Go语言模板的使用
golang·go·template method·模板·web app
x***38161 小时前
Go-Gin Web 框架完整教程
前端·golang·gin
Zfox_1 小时前
【Go】环境搭建与基本使用
开发语言·后端·golang
raoxiaoya1 小时前
golang本地开发多版本切换,golang多版本管理,vscode切换多版本golang
开发语言·vscode·golang
Dobby_051 小时前
【Go】 Go Modules 依赖管理
运维·golang
k***3882 小时前
Golang 构建学习
开发语言·学习·golang
z***56562 小时前
GO 快速升级Go版本
开发语言·redis·golang