英文:
Getting the type pointed to a pointer with reflection
问题
给定以下代码:
var v reflect.Value = ...
v.Type() // *model.Company
如何使用反射实例化一个新的model.Company
对象,并修改其字段?
英文:
Given this :
var v reflect.Value = ...
v.Type() // *model.Company
How to instantiate a new model.Company and modify its fields with reflection ?
答案1
得分: 0
以下是您提供的代码的翻译:
类似于以下代码:
v := reflect.ValueOf(&Company{})
t := v.Type()
c := reflect.New(t.Elem()).Elem()
c.FieldByName("Name").SetString("Reflection Inc.")
fmt.Printf("%#v\n", c.Interface())
// => main.Company{Name:"Reflection Inc."}
在playground上的可运行版本:
英文:
Something along the lines of:
v := reflect.ValueOf(&Company{})
t := v.Type()
c := reflect.New(t.Elem()).Elem()
c.FieldByName("Name").SetString("Reflection Inc.")
fmt.Printf("%#v\n", c.Interface())
// => main.Company{Name:"Reflection Inc."}
Working version in the playground:
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论