go 泛型
func main() {
fmt.Println(fxinit2(1,2)) //泛型。go 1.17版本不支持泛型,运行mian的脚本时,打开idea左下方Terminal运行,需要加上 go run -gcflags=-G=3 test1.go
fmt.Println(fxinit2("hello","World")) //泛型。linux环境下也可以提前定义好, export GOFLAGS="-gcflags=-G=3"
}
//泛型 就是把参数集合话,不用多次定义两个参数的类型,对参数来说,个人感觉它和空接口功能类似,空接口可以传入任意,但是这个可以指定传入哪些
//go.1.7刚出的泛型,还在测试阶段
type fxinit1 interface {
type int,int8,int16,int32,int64,
uint,uint8,uint16,uint32,uint64,uintptr,
float32,float64,complex64,complex128,string
}
////go1.17版本不支持泛型,这里报错是正常的,运行时加上 -gcflags=-G=3 就可以运行
func fxinit2[T fxinit1](a,b T) T {
return a + b
}