1 回答
TA贡献1818条经验 获得超3个赞
问题中的代码没有错。下面介绍如何使用反射 API 来实现目标:
导出字段以使字段可通过反射 API 进行设置。
type Employee struct {
FirstName string
LastName string
Role string
}
为员工创造反映价值。和 恶作剧是获取可设置值所必需的。&Elem()
var e Employee
v := reflect.ValueOf(&e).Elem()
对于每个字段,设置字符串:
for i := 0; i < v.NumField(); i++ {
v.Field(i).SetString(values[i])
}
在 Go 游乐场上运行一个示例。
如果需要将代码放在多个位置,请将代码放在函数中:
// setStrings sets the fields of the struct pointed
// to by ptr to the specified values.
func setStrings(ptr interface{}, values []string) {
v := reflect.ValueOf(ptr).Elem()
for i := 0; i < v.NumField(); i++ {
v.Field(i).SetString(values[i])
}
}
这样称呼它:
values := []string{"Monica", "Smith", "Manager"}
var e Employee
setStrings(&e, values)
fmt.Printf("%+v\n", e) // prints {FirstName:Monica LastName:Smith Role:Manager}
在操场上运行一个示例。
- 1 回答
- 0 关注
- 120 浏览
添加回答
举报
