reflect пакет?Рефлексия: интроспекция типов и значений во время выполнения - поля структур, методы, вызов методов по имени. Используется в encoding/json, ORM, сериализаторах.
v := reflect.ValueOf(x)
fmt.Println(v.Type(), v.Kind())
// обход полей структуры, вызов методов
Медленнее прямого доступа; применять там, где без рефлексии не обойтись (универсальные библиотеки).