Suppose
type A struct {
A1 int
}
var a *A
can we initialise "a" with reflect? reflect.ValueOf(a).Type().Elem() gives the type but it seems reflect.ValueOf(a).Elem() is the zero Value and not addressable.
Suppose
type A struct {
A1 int
}
var a *A
can we initialise "a" with reflect? reflect.ValueOf(a).Type().Elem() gives the type but it seems reflect.ValueOf(a).Elem() is the zero Value and not addressable.
Get addressable value for variable a
:
var a *A
va := reflect.ValueOf(&a).Elem()
Allocate a new A
:
v := reflect.New(va.Type().Elem())
Assign the pointer to newly allocated A
to the variable a
:
va.Set(v)
Because Go passes arguments by value, it is not possible to set a value to a
starting with relfect.ValueOf(a)
.