Mimic struct.field с использованием отражения - PullRequest
0 голосов
/ 17 мая 2018

Как получить то же значение, что и reflect.TypeOf(struct.field) при использовании FieldByName, когда поле имеет тип интерфейса?

Как видно здесь , если поле структуры является интерфейсом, reflect.TypeOf(struct.field) дает мне конкретный тип, но reflect.ValueOf(struct).FieldByName("field").Type() дает мне интерфейс. Можно ли получить конкретный тип, хранящийся в struct.field, используя отражение, если все, что у меня есть, это struct и "field"?

1 Ответ

0 голосов
/ 17 мая 2018

Вы должны использовать Elem()

// Elem возвращает значение, которое содержит интерфейс v

Правильный способ извлечения типа

reflect.ValueOf(h).Elem().FieldByName("i").Elem().Type().String()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...