Я хочу проверить, как работает моя функция setFieldValue()
.
func main() {
value := uint64(0x36)
resType := reflect.TypeOf(uint8(0))
expectedRes := uint8(0x36)
res := uint8(0)
setFieldValue(reflect.ValueOf(&res).Elem(), resType.Kind(), value)
if res == expectedRes {
fmt.Println("voila")
} else {
fmt.Println("nuts")
}
}
func setFieldValue(field reflect.Value, fieldKind reflect.Kind, fieldValue uint64) {
switch fieldKind {
case reflect.Uint8:
field.SetUint(fieldValue)
}
}
Но я не хочу, чтобы переменная res
также имела тип TypeOf(uint8(0))
. Если я создаю res как
res := reflect.New(resType)
setFieldValue(res, resType.Kind(), value)
, он не работает, потому что res не адресуется.
Как правильно создать переменную, используя отражение, а затем установить его значение в некоторой забаве c?
Или как получить экземпляр вновь созданной переменной?