Proto3 for Go 中的可选支持

Khu*_*shi 4 go protocol-buffers proto proto3

使用 Go 时,proto3 是否支持可选功能?我尝试过这个:

protoc person.proto --go_out=. --experimental_allow_proto3_optional
Run Code Online (Sandbox Code Playgroud)

但出现这个错误

person.proto:是一个包含可选字段的 proto3 文件,但代码生成器 protoc-gen-go 尚未更新以支持 proto3 中的可选字段。请要求此代码生成器的所有者支持 proto3 可选。--go_out:

那么proto3(Go)不支持可选关键字?

bla*_*een 6

protoc确实支持它,从版本开始v3.15.0。请参阅发行说明

proto3 的可选字段默认启用,并且不再需要该--experimental_allow_proto3_optional标志。

protoc-gen-go插件确实从v1.22.0. 发行说明

此版本增加了对 protobuf 语言 v3.12.0 版本中实验性 proto3 可选语义的支持,[...]

确保将您的protoc-gen-go版本升级到v1.22.0或更高版本。