Как получить тип чана с отражающим пакетом - PullRequest
0 голосов
/ 15 февраля 2020

Скажем, у меня есть канал в Go:

var c = make(chan int)

, как узнать, что это канал, использующий:

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

, но кто-нибудь знает, как я определяю тип канал, в данном случае int?

1 Ответ

3 голосов
/ 15 февраля 2020

Используйте Elem для получения типа канала:

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

Для канала int, channelType будет int.

...