Дополнительные функции рефлексии
Помимо функции reflect.TypeOf, мы также можем использовать некоторые другие функции из reflect стандартного пакета для создания reflect.Type значений, которые представляют некоторые безымянные составные типы.
Есть и другие методы reflect.Type, которые не используются в приведенных выше примерах, пожалуйста, прочти reflect документацию пакета, чтобы узнать об их использовании.
Обрати внимание, что до сих пор (Go 1.19) не было способов создавать типы интерфейсов с помощью рефлексии. Это известное ограничение рефлексии Go.
Еще одно ограничение заключается в том, что, хотя мы можем создать тип структуры, встраивающий другие типы в качестве анонимных полей посредством рефлексии, тип структуры может получать или не получать методы встроенных типов, а создание типа структуры с анонимными полями даже может вызывать панику во время выполнения. Поведение при создании типов структур с анонимными полями частично зависит от компилятора.
Третье ограничение — мы не можем объявлять новые типы через рефлексию.