假设
type A struct {
A1 int
}
var a *A
我们可以初始化" a"与反思? reflect.ValueOf(a).Type()。Elem()给出类型,但它似乎是reflect.ValueOf(a).Elem()是零值,不可寻址。
答案 0 :(得分:3)
获取变量a
的可寻址值:
var a *A
va := reflect.ValueOf(&a).Elem()
分配新的A
:
v := reflect.New(va.Type().Elem())
将指向新分配的A
的指针分配给变量a
:
va.Set(v)
因为Go按值传递参数,所以无法从a
开始将值设置为relfect.ValueOf(a)
。