avro Idl 中联合的默认值是多少?

bar*_*ath 5 apache json idl avro

对于 avro Idl 中的联合,如下所示,默认值是什么?
1. union {null, string} var = null;
2. union {string, null} = "xyz";
3. union {null, string} = "xyz";
4. union {null, string, array} = [];

我的假设是默认值将始终是联合中的第一项。我的理解正确吗?

bar*_*ath 6

好的,我找到了答案(来自apache 用户指南)。联合
的默认类型始终是它的第一个值。因此,上面示例的默认类型为NULLSTRINGNULLNULL。默认值将是分配给联合的值。

因此,在上述联合中,只有第一个和第二个联合在语法上是正确的,我认为所有其他(3 和 4)联合在语法上都是错误的,因为分配给它们的 defaultValues 与联合的defaultType不匹配。