假设我在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/

10-13 02:04