Каково значение перечисления по умолчанию в Protobuf? - PullRequest
13 голосов
/ 20 марта 2011

Здравствуйте. Каково значение перечисления по умолчанию (если не определено значение по умолчанию) в буфере протокола Google, используемое с Java?

Ответы [ 2 ]

15 голосов
/ 20 марта 2011

Это первый параметр, определенный в порядке .proto.

Из руководства по языку .proto (поскольку все реализации используют здесь одинаковую логику):

Необязательные поля и значения по умолчаниюЗначения

(snip) Для перечислений значением по умолчанию является первое значение, указанное в определении типа перечисления.

4 голосов
/ 20 марта 2011

из официальная спецификация :

необязательно: поле может быть или не быть установлено.Если необязательное значение поля не установлено, используется значение по умолчанию.Для простых типов вы можете указать собственное значение по умолчанию, как мы сделали для типа телефонного номера в примере.В противном случае используется системное значение по умолчанию: ноль для числовых типов, пустая строка для строк, false для bools.Для встроенных сообщений значением по умолчанию всегда является «экземпляр по умолчанию» или «прототип» сообщения, для которого не установлено ни одно из его полей.Вызов метода доступа для получения значения необязательного (или обязательного) поля, которое не было установлено явно, всегда возвращает значение этого поля по умолчанию.

Значение по умолчанию можно установить следующим образом:

optional PhoneType type = 2 [default = HOME];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...