Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpRfInr 143 of 280 menu
◀ ▶

Введение в рефлексию в Go

Рефлексия смотрит на тип и поля значения уже во время работы программы. Обычный код знает тип на этапе компиляции, а здесь имя типа и состав структуры можно прочитать из переменной, когда программа уже запущена.

Для этого служит пакет reflect из стандартной библиотеки. Он не заменяет обычные поля и методы, а дополняет их там, где одна функция должна обработать разные структуры или проверить, что лежит внутри интерфейса.

Вы уже умеете объявлять структуры, вешать на них методы и работать с интерфейсами. Рефлексия опирается на те же правила: экспортируемые имена видны снаружи пакета, а к полям обращаются по номеру и имени через специальные значения из пакета.

В этом разделе сначала разберем различие между именем типа и его видом, затем перебор полей и чтение строки-метки у поля. Отдельно посмотрим вызов метода по имени из текста. В конце закрепим приемы на задачах без готовых фрагментов кода.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить