Функция reflect.ValueOf
Для значения Go мы можем использовать reflect.ValueOf функцию для создания reflect.Value значения, представляющего значение Go, с помощью interface{}. Обратный процесс аналогичен: мы можем вызвать Interface метод reflect.Value значения, чтобы получить interface{}значение, затем ввести assert для interface{} значения, чтобы получить значение Go, представленное значением (также известным как базовое значение) reflect.Value. Но учти, что вызов Interface метода reflect.Value значения, представляющего неэкспортируемое поле, вызывает панику.
Этот метод reflect.Value.IsZero был введен в Go 1.13. Он используется для проверки того, является ли базовое значение reflect.Value значения нулевым значением.
Начиная с версии Go 1.17, слайс может быть преобразован в указатель на массив. Однако такое преобразование может вызвать сбой, если длина типа базового массива указателя слишком велика. Метод reflect.Value.CanConvert(T reflect.Type), представленный в Go 1.17, используется для проверки успешности преобразования.