官方文档
https://protobuf.dev/programming-guides/proto3/
用了optional,在字段没填写的时候,不会被序列化进去,可以节省空间
proto2的required是指client不填这个字段就请求的话会报错
相比那个,proto3确实都是optional的,因为proto3不填也不会报错
现在的optional在序列化出来以后是指针
现在的proto3中,标记为option的,生成的代码就是指针
message AcquireResponse {
// limited rule index, -1 means all access
optional int64 baned = 1;
}
type AcquireResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// limited rule index, -1 means all access
Baned *int64 `protobuf:"varint,1,opt,name=baned,proto3,oneof" json:"baned,omitempty"`
}