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

相关推荐
2301_816997889 小时前
Go语言简介
golang·go
一只理智恩10 小时前
基于 CesiumJS + React + Go 实现三维无人机编队实时巡航可视化系统
前端·人工智能·算法·golang·无人机
礼拜天没时间.10 小时前
Linux运维实战:巧用mv命令管理多版本Go环境,避免采坑
linux·运维·golang·centos
creator_Li21 小时前
Golang的Map
golang
creator_Li1 天前
Golang的切片Slice
golang·slice
源代码•宸1 天前
简版抖音项目——项目需求、项目整体设计、Gin 框架使用、视频模块方案设计、用户与鉴权模块方案设计、JWT
经验分享·后端·golang·音视频·gin·jwt·gorm
nix.gnehc1 天前
深入浅出 Go 内存管理(二):预分配、GC 与内存复用实战
golang
creator_Li1 天前
Golang的Channel
golang·channel
nix.gnehc1 天前
深入理解Go并发核心:GMP模型与Goroutine底层原理
开发语言·算法·golang
nix.gnehc1 天前
深入浅出 Go 内存管理(一):三级缓存、逃逸分析与内存碎片
golang