我对 proto3 的理解是,对于标量,无法区分消息发送者是否将字段设置为默认值,或者根本没有设置该字段,因为默认值不是通过网络发送的。也就是说,无论是否设置了默认值,对该字段的 hasField 调用都将返回 false。只有当字段设置为默认值以外的其他值时,hasField 才会返回 true。
我已经阅读了一些关于使用对象作为包装器来解决这种情况的内容,但我仍在尝试了解它是如何工作的,例如:https ://github.com/protocolbuffers/protobuf/blob/master/src/google/ protobuf/wrappers.proto
我的问题是:如果一个对象的所有字段都设置为默认值,该对象是否仍会通过网络发送?或者该对象的 hasFields 是否会返回 False?