Одной из привлекательных особенностей протокольных буферов является то, что они позволяют расширять определения сообщений, не нарушая код, использующий старое определение. В случае перечисления согласно документации:
поле с типом перечисления может иметь в качестве значения только одну из указанного набора констант (, если вы попытаетесь предоставить другое значение, синтаксический анализатор относитесь к нему как к неизвестному полю )
, поэтому, если вы расширите перечисление и используете новое значение, то поле с этим типом в старом коде будет неопределенным или будет иметь значение по умолчанию, если оно есть.
Как с этим справиться, зная, что в будущем к перечислению могут быть добавлены дополнительные значения?
Один из способов, который приходит на ум, — определить «неопределенный» член перечисления и сделать его значением по умолчанию,тогда старый код узнает, что ему было отправлено что-то, что он не может интерпретировать. Разумно ли это, есть ли лучшие способы справиться с этой ситуацией?