proto 通过字段名获取值
很久没有更新博客了,一方面是出去实习比在学校的时候忙,真的很多东西等着我去学,太可怕了,另一方面就是懒 protobuf 真是个好东西,就是在你不知道具体结构的时候想要拿到特定字段的值有点小麻烦,好不容易折腾出来了,写篇博客记录一下 func FindByName(name string, msg protoreflect.Message) (has bool, value protoreflect.Value, isList bool) { if name == "" { return false, *new(protoreflect.Value), false } msgDesc := msg.Descriptor() for i := 0; i < msgDesc.Fields().Len(); i++ { if msgDesc.Fields().Get(i).Kind() == protoreflect.MessageKind { sonMsg := msgDesc.Fields().Get(i) has, value, isList = FindByName(name, msg.Get(sonMsg).Message()) // type mismatch: cannot convert list to message if has { return has, value, isList } } if msgDesc.Fields().Get(i).Name() == protoreflect....