proto3에는 두 가지 주요 옵션이 있습니다. 첫 번째는 당신이 제안 같은 oneof
를 사용하는 것입니다,하지만 실제로 당신은 단지 oneof
에 하나 개의 항목이 필요합니다 : 당신은 여전히 value
이 없거나 제로 여부를 확인할 수 있도록
oneof option {
int64 value = 15;
}
Oneof 필드는 존재의 개념을 가지고있다. 다른 대안은 google/protobuf/wrappers.proto에 래퍼 유형 중 하나를 사용하는 것입니다. 이러한 래퍼는 원시 형식을 사용하여 메시지로 래핑하므로 하위 메시지 필드가 존재하기 때문에 상황에 도움이됩니다. 여기에 Int64
래퍼 예를 들면 모습입니다 :
// Wrapper message for `int64`.
//
// The JSON representation for `Int64Value` is JSON string.
message Int64Value {
// The int64 value.
int64 value = 1;
}
것은 마지막으로 고려해야 할 한 가지가 항상 proto2을 계속 사용할 수 있다는 것입니다. proto2 및 proto3 스타일은 모두 protobuf 버전 3.0 이상에서 지원되며 proto2를 무한정 지원할 계획입니다.
눈부셔, 감사합니다! 호기심에서,'map' 외에 다른 매개 변수화 된 타입을 지원할 계획이 있습니까? – acjay
다른 매개 변수화 된 형식을 지원할 계획이 없다고 생각합니다 (기존 반복 된 필드도 매개 변수화 된 형식과 비슷하다고 주장 할 수 있습니다). –