更改后,ok为false时,仍然被省略:type IsRoomExist_OutObj struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ok bool `protobuf:"varint,1,req,name=ok,proto3" json:"ok"` }
时间: 2024-03-16 12:41:16 浏览: 56
nasm-0.98.zip_nasm-0.98.zip
如果您将proto标签中的"opt"改为"req",但是在序列化时仍然省略了该字段,那么可能是因为在您的代码中,该字段的值为默认值false,并且没有被显式地赋值。
在protobuf中,当一个字段的值为默认值时,该字段不会被序列化到消息中。因此,如果您希望在序列化时包含该字段,需要在代码中显式地为该字段赋值。
例如,在IsRoomExist_OutObj的构造函数中,可以为Ok字段赋一个默认值true,如下所示:
```
func NewIsRoomExist_OutObj() *IsRoomExist_OutObj {
return &IsRoomExist_OutObj{
Ok: true,
}
}
```
这样,在序列化时,即使Ok的值为false,也会将其序列化到消息中。
阅读全文