要上 gRPC 啦,由于 gRPC 要用 pb3,而 pb3 里面废除了 required 和 optional,所有字段都是 optional 了。我们面临如何判断某个字段是没值,还是默认值 0 的问题。
知乎上有个方法: https://zhuanlan.zhihu.com/p/46603988
也找到了 fieldmask 的方法: https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto
Stack Overflow 上也有增加 null 字段做法: https://stackoverflow.com/questions/42622015/how-to-define-an-optional-field-in-protobuf-3
不知道哪种更好,前提是,pb 的序列化性不能退化,毕竟从 json 换 pb 就是为了它的序列化性能。 有没有踩过坑的同学来讨论一下。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.