go 泛型

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
}
posted @ 2022-05-31 13:36  liwenchao1995  阅读(73)  评论(0)    收藏  举报