У меня есть структура данных, подобная этой демонстрации.
type Family struct {
first string
last string
}
type Person struct {
name string
family *Family
}
func main(){
per1 := Person{name:"niki",family:&Familys{first:"yam",last:"bari"}}
Check(per1)
}
и код:
var validate *validator.Validate
func Check(data interface{}) {
var v = reflect.ValueOf(data)
if v.Kind() == reflect.Struct {
fmt.Println("was a struct")
v = v.FieldByName("family").FieldByName("last")
fmt.Println(v)
}
}
когда я не использую точку для Family, она возвращает "bari", и это нормально. Но с точкой, есть эта ошибка.
отражение: вызов рефлекса. Значение.FieldByName в ptr Значение
Я много искал, но не могу найти ответ, может помочь.