假设我在Go中有一个chan:
var c = make(chan int)
如何使用以下方法发现它是一个 channel :
var isChannel = reflect.ValueOf(c).Kind() == reflect.Chan
但是没有人知道我如何确定 channel 的类型,在这种情况下为
int
? 最佳答案
使用Elem
获取 channel 类型:
var isChannel = reflect.ValueOf(c).Kind() == reflect.Chan
channelType := reflect.ValueOf(c).Type().Elem()
对于
int
channel ,channelType
将为int
。关于go - 如何使用反射包获取chan的类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60241421/