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

相关推荐
普通网友7 小时前
PHP语言的正则表达式
开发语言·后端·golang
小二·18 小时前
Go 语言系统编程与云原生开发实战(第18篇)
云原生·golang·log4j
Java面试题总结18 小时前
Go-依赖注入
开发语言·后端·golang
Java面试题总结18 小时前
Go 泛型中的 [0]func(T)
开发语言·后端·golang
小二·18 小时前
Go 语言系统编程与云原生开发实战(第19篇)
开发语言·云原生·golang
码luffyliu19 小时前
Go 微服务 RPC 实践:从 IDL 定义到 SDK 调用的完整链路
后端·微服务·rpc·golang
福大大架构师每日一题1 天前
go-zero v1.10.0发布!全面支持Go 1.23、MCP SDK迁移、性能与稳定性双提升
开发语言·后端·golang
2301_816997882 天前
Go语言简介
golang·go
一只理智恩2 天前
基于 CesiumJS + React + Go 实现三维无人机编队实时巡航可视化系统
前端·人工智能·算法·golang·无人机
礼拜天没时间.2 天前
Linux运维实战:巧用mv命令管理多版本Go环境,避免采坑
linux·运维·golang·centos