Ноль - это значение по умолчанию для чисел (аналогично, строки по умолчанию пустые, логические значения ложные).См. здесь для получения более подробной информации.
Для эффективности Protobuf использует эти значения по умолчанию.В нашей системе (используя FastRTPS и Protobuf для pub / sub) значения по умолчанию не передаются по проводам.Исходя из того, что вы видите, он не беспокоится о них для сериализации.
Однако это только поведение по умолчанию и может быть изменяемым.Например, если вы используете MessageToJson
, вы можете просто установить для необязательного параметра including_default_value_fields
значение True
, заявив, что вы также хотите выводить значения по умолчанию:
jsonStr = MessageToJson(myMsg, True)