Каково значение enum по умолчанию в proto2 с учетом зарезервированных тегов полей?

Допустим, у вас есть следующий enum в proto2.

  enum my_enum {
    reserved 0;
    VALUE = 1; 
    ANOTHER = 2;
  }

Мой вопрос ... каково значение enum по умолчанию в этом случае, где не определено по умолчанию? В документах сказано:

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

... так что "первое значение" означает 0 (зарезервировано) или 1 ?

Всего 1 ответ


Я только что проверил это в моем коде с

message my_enum {
    enum my_service {
        reserved 0;
        VALUE = 1;
    }
    optional my_service selected_service = 1;
}

и по умолчанию это VALUE (т.е. 1), а не 0.


Есть идеи?

10000