为了账号安全,请及时绑定邮箱和手机立即绑定

你能用 Golang 反射初始化一个指针变量吗?

你能用 Golang 反射初始化一个指针变量吗?

Go
精慕HU 2021-11-29 15:31:33
认为type A struct {   A1 int}var a *A我们可以用反射初始化“a”吗?reflect.ValueOf(a).Type().Elem() 给出了类型,但似乎reflect.ValueOf(a).Elem() 是零值并且不可寻址。
查看完整描述

1 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

获取变量的可寻址值a

var a *A
va := reflect.ValueOf(&a).Elem()

分配一个新的A

v := reflect.New(va.Type().Elem())

将指针分配A给新分配的变量a

va.Set(v)

游乐场示例

由于 Go 按值传递参数,因此无法将值设置为arelfect.ValueOf(a).


查看完整回答
反对 回复 2021-11-29
  • 1 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信