我有一个带有成员 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
提交
取消