Sobes.tech
Back to questions
Middle+
4

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

Companies where asked
Астрал-Софт

Answer from AI

sobes.tech AI

Пакет 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 во время выполнения.