您已经注意到,family
是*Family
。正如错误所言,您不能在该值是指针.FieldByName(...)
的reflect.Value
地方调用。
相反,您需要间接指针,以获取其指向的值,然后对其进行调用.FieldByName(...)
。
familyPtr := v.FieldByName("family")
v = reflect.Indirect(familyPtr).FieldByName("last")
请参阅有关间接文档:https://golang.org/pkg/reflect/#Indirect