给定以下原型规范:
message A {
B b = 1;
}
message B {
string s = 1;
}
和类型为A
的对象a
,如何检查是否设置了a.b.s
?更具体地说,我如何创建要传递到Message.Has()
的FieldDescriptor
?
给定一些原型对象bv := wrapperspb.BoolValue{}
,可以用fd := (&bv).ProtoReflect().Descriptor().Fields().ByName("value")
获取value
字段的字段描述符,并检查该字段是否设置有bv.ProtoReflect().Has(fd)
。