protobuf 3 里面为什么没有 has_field

2018-09-27 10:12:27 +08:00
 MrVito

刚从 protobuf 2 转过来,发现没有 has_field,不知道该怎么判断一个字段是否被设置过
不知道有没有 v 友们遇到了类似的问题,有没有好的解决方案?
感激不尽!

4875 次点击
所在节点    Google
3 条回复
zhs227
2018-09-27 10:21:30 +08:00
protobuf3 的官方说明里提到,为了节省传输大小,对于默认值采用不传输的方式。在你取到一个字段为默认值的时候,你无法了解到发送端是否有主动设置这个字段。
你可以直接解析,如果不是默认值表示被设置过了。
MrVito
2018-09-27 10:39:25 +08:00
@zhs227 问题就在于有时候,值是我主动设置的,恰好为默认值了,有时候是我没有设置,我需要在主动设置的时候,做一些处理,这怎么办?
zhs227
2018-09-27 11:31:53 +08:00
不要用 0 做为默认值。保值有值传送的情况下,一定要设置。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/493035

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX