Отражение!!!
Отражение в вычислениях — это способность программы исследовать свою собственную структуру, особенно через типы; это форма метапрограммирования.
Модель отражения в каждом языке разная (и многие языки вообще ее не поддерживают), мы поговорим о том, как достигается отражение в GO.
Отражение в основном позволяет вам проверять тип структур, интерфейсов, их полей и методов во время выполнения, не зная их имен. Мало того, что он также позволяет создавать новые объекты во время выполнения.
Во-первых, когда мы говорим тип, что мы на самом деле имеем в виду?
В Go есть типы и виды. Сначала давайте поймем разницу между ними. Допустим, мы определили структуру mystruct
, тогда тип struct
и тип mystruct
Ниже приведен код для поиска типа во время выполнения с использованием пакета Reflect.
Output : int main.rstruct 0xc000084030 main.rstruct 0xc000084030
Теперь мы увидим, как мы можем создать экземпляр во время выполнения.
Output 12 hello
Подробнее о различных возможностях пакета reflect
можно прочитать в официальной документации.