アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

proto3でのnullを表す

proto2でoptionalがありましたが、proto3でoptionalが削除されました。
messageはデフォルトでnullableですが、scalar型はデフォルトでnon-nullの為、nullableを表すには以下のようにmessageでラップする必要がありました。

message Hoge {
    google.protobuf.StringValue name = 1;
}

protobuf 3.15.0でoptionalが復活し、 google.protobuf.StringValue は必要なくなり、以下のように表現できるようになりました。
https://github.com/protocolbuffers/protobuf/releases/tag/v3.15.0

message Hoge {
    optional string name = 1;
}