认为
type A struct {
A1 int
}
var a *A
Run Code Online (Sandbox Code Playgroud)
我们可以用反射初始化“a”吗?reflect.ValueOf(a).Type().Elem() 给出了类型,但似乎reflect.ValueOf(a).Elem() 是零值并且不可寻址。
获取变量的可寻址值a:
var a *A
va := reflect.ValueOf(&a).Elem()
Run Code Online (Sandbox Code Playgroud)
分配一个新的A:
v := reflect.New(va.Type().Elem())
Run Code Online (Sandbox Code Playgroud)
将指针分配A给新分配的变量a:
va.Set(v)
Run Code Online (Sandbox Code Playgroud)
由于 Go 按值传递参数,因此无法将值设置为a以relfect.ValueOf(a).
| 归档时间: |
|
| 查看次数: |
1102 次 |
| 最近记录: |