如何通过反射包获得chan的类型

问题描述 投票:0回答:1

说我在Go中有频道:

var c = make(chan int)

如何使用以下方法发现它是一个频道:

var isChannel = reflect.ValueOf(c).Kind() == reflect.Chan

但是没有人知道我如何确定通道的类型,在这种情况下为int

go channel reflect
1个回答
0
投票

使用Elem获取频道类型:

var isChannel = reflect.ValueOf(c).Kind() == reflect.Chan
channelType := reflect.ValueOf(c).Type().Elem()

对于int通道,channelType将是int

© www.soinside.com 2019 - 2024. All rights reserved.