Что такое reflect.Value?

Middle+
490 просмотров
AFK Offer AI

reflect.Value — обёртка над произвольным Go значением, позволяющая читать и менять его в рантайме. Получаешь через reflect.ValueOf(x). Если передал указатель — можешь менять: v.Elem().SetInt(42). Если не указатель — только читать. reflect.Value знает тип (v.Type()), kind (v.Kind()), может конвертировать (v.Convert()), вызвать метод (v.Method(0).Call()). Используется в encoding/json, fmt, ORM-ах. Но reflect медленный — каждая операция с проверками и аллокациями. В hot path лучше code generation.

Следующий вопрос

Что такое cache-aside паттерн?