Скажем, у меня есть канал в Go:
var c = make(chan int)
, как узнать, что это канал, использующий:
var isChannel = reflect.ValueOf(c).Kind() == reflect.Chan
, но кто-нибудь знает, как я определяю тип канал, в данном случае int?
int
Используйте Elem для получения типа канала:
Elem
var isChannel = reflect.ValueOf(c).Kind() == reflect.Chan channelType := reflect.ValueOf(c).Type().Elem()
Для канала int, channelType будет int.
channelType