对于avro Idl中的工会,下面会有什么默认值?
1. union {null,string} var = null;
2. union {string,null} =" xyz&#34 ;;
3. union {null,string} =" xyz&#34 ;;
4. union {null,string,array} = [];
我的假设是默认值始终是联合中的第一项。我的理解是否正确?
答案 0 :(得分:2)
好的,我找到了答案(来自apache user guide) union 的默认类型将始终是它的第一个值。因此,上面示例的默认类型是 NULL , STRING , NULL 和 NULL 。默认值将是分配给union的那些值。
所以,在上面的联合中,只有第一个和第二个联合在语法上是正确的,我认为所有其他(3和4)联合在语法上都是错误的,因为分配给它们的defaultValues与< em> union的 defaultType。