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

相关推荐
JWASX2 小时前
Java 转 go 学习 - kitex(5)
学习·golang
谢亮_vipxieliang3 小时前
Go net/http 标准库深入——构建生产级 HTTP 服务
http·golang·iphone
小小龙学IT4 小时前
Go 语言 gRPC(grpc-go)深度解析
rpc·架构·golang·go
microrain6 小时前
KNX 现场没有寄存器表:SagooIoT 楼宇驱动插件的组地址、DPT 与隧道
物联网·golang·开源·sagooiot
Duang007_7 小时前
生产可观测性:从“系统慢“到“根因“的完整链路(Go / TypeScript)
后端·python·golang·typescript·prometheus
。小二7 小时前
Go 泛型并发利刃:async 库深度评测——370K ops/s、零依赖、生产就绪
开发语言·javascript·golang
徐小黑ACG8 小时前
Golang 基础01
开发语言·后端·golang
JWASX8 小时前
Java 转 go 学习 - dubbo-go(1)
学习·golang
JWASX8 小时前
go 学习 - prometheus 指标学习
学习·golang·prometheus
脉动数据行情18 小时前
Go 语言实战|对接美股英伟达 NVDA 实时行情 生产级 WebSocket 方案
开发语言·websocket·golang