Reflect.Value.FieldByName导致恐慌
调用反射值的.FieldByName方法时出现以下错误,确切的错误是:-
panic: reflect: call of reflect.Value.FieldByName on ptr Value
和代码是:-
s := reflect.ValueOf(&value).Elem() (value is a struct)metric := s.FieldByName(subval.Metric).Interface() (subval.Metric is a string)
我了解的并不多,但这就是我所能获得的所有信息。
这是Go Playground上代码的链接:http :
//play.golang.org/p/E038cPOoGp
回答:
您value
已经是一个指向结构的指针。尝试打印出s.Kind()
您的代码。
没有理由使用的地址value
,然后调用Elem()
that reflect.Value
,它会取消对刚创建的指针的引用。
s := reflect.ValueOf(value).Elem()metric := s.FieldByName(subvalMetric).Interface()
fmt.Println(metric)
以上是 Reflect.Value.FieldByName导致恐慌 的全部内容, 来源链接: utcz.com/qa/426250.html