Что такое пакет reflect в Go? Зачем он нужен?

Пакет reflect в Go предоставляет возможности для работы с типами и значениями во время выполнения программы (runtime).

Короткий ответ

Что ответить на собеседовании

Пакет reflect в Go предоставляет возможности для работы с типами и значениями во время выполнения программы (runtime). Он позволяет динамически исследовать и изменять объекты, получать информацию о типах, полях структур, методах и вызывать их.

Подробный разбор

Ответ с пояснениями

Пакет reflect в Go предоставляет возможности для работы с типами и значениями во время выполнения программы (runtime). Он позволяет динамически исследовать и изменять объекты, получать информацию о типах, полях структур, методах и вызывать их.

Это полезно, когда типы данных заранее неизвестны или когда нужно реализовать универсальные функции, например, сериализацию, ORM, тестирование или библиотеки, работающие с разными типами.

Пример использования reflect для получения имени типа и значения переменной:

package main

import (
    "fmt"
    "reflect"
)

func main() {
    var x float64 = 3.14
    v := reflect.ValueOf(x)
    t := reflect.TypeOf(x)
    fmt.Printf("Тип: %s, Значение: %v\n", t, v)
}

Здесь мы получаем тип и значение переменной x во время выполнения.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку