2013-09-02 5 views
1

와 포인터로 지적하기이 :이 유형을 감안할 때 반사

var v reflect.Value = ... 

v.Type() // *model.Company 

어떻게 새로운 model.Company를 인스턴스화하고 반사와 해당 필드를 수정하려면? 의 라인을 따라

답변

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."} 

놀이터에서 버전을 사용 : SO 지속적으로 내 일을 저장에

+0

너희들. 나는 언젠가 어떤 것을 되돌릴 수 있기를 희망합니다. 그건 그렇고, 그것은 매력처럼 작동합니다. Gustavo에게 감사드립니다. –

관련 문제