2014-11-06 7 views
3

avro Idl의 유니언의 경우 아래와 같이 기본값이 무엇입니까?
1. union {null, string} var = null;
2. union {string, null} = "xyz";
3. union {null, string} = "xyz";
4. union {null, string, array} = [];avro Idl의 공용체의 기본 값은 무엇입니까?

내 가정은 항상 노동 조합의 첫 번째 항목이 기본값입니다. 내 말이 맞습니까?

답변

1

괜찮습니다. 대답을 찾았습니다 (apache user guide에서).
기본 유형 유니온은 항상 첫 번째 값입니다. 따라서 위 예제의 기본 유형은 NULL, 문자열, NULLNULL입니다. 그리고 기본값은 노동 조합에 할당 된 값입니다.

그래서, 위의 조합 만 제 1 및 제 2 노동 조합는 문법적으로 정확하고 나는 다른 모든 (3, 4) 생각하는 자신에게 할당 된 defaultValues이 노동 조합의 defaultType 일치하지 않기 때문에 노동 조합의 구문이 잘못되었습니다.