赞
踩
先看代码,定义一个简单的泛型 c1
里面一个 int ,定义一个函数goods
下面 main
函数进行调用, 如果直接传int
类型是不会报错的,但是如果传自定义类型的b
就会报错。
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 }
对面代码改成就不会有问题
type c1 interface {
~int
}
解释
“~” 符号的类型则代表以该类型为底层类型(underlying type)的所有类型,这类带有 “~” 的类型也被称为 approximation elemen
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。