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

在 Go 中通过反射为结构成员赋值

在 Go 中通过反射为结构成员赋值

Go
慕标5832272 2021-09-13 10:30:24
我有一个带有成员 A、B、C 字符串的 struct v。使用反射,我可以获得字段的名称及其值:typ := v.Type()for i := 0; i < v.NumField(); i++ {    // gets us a StructField    fi := typ.Field(i)    fieldname := fi.Name    fmt.Println(fieldname)    val := fmt.Sprintf("%v", v.Field(i).Interface()) }因为我有名字,并且可以得到值 OUT,我可以为字段分配新值吗?我想基本上做:v.Field(fieldname).Interface() = "new value"但这显然行不通。如果您只知道字段的名称,是否可以为结构赋值?在实践中,我试图将值从 a 分配给map[string]string结构中的相应字段,其中结构和映射定义可能会随着时间的推移而扩展,并且映射可能包含比结构更多或更少的值。我考虑过用 JSON 来做,但这种方法让我有点冷淡,因为使用反射来“几乎”到达那里是多么容易!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 249 浏览
慕课专栏
更多

添加回答

举报

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