2014-03-27 60 views
3

我注意到我可以在nimrod中声明元组而不用为每个字段命名。例如:没有字段名称的元组

type T1 = tuple[string, age: int] 
type T2 = tuple[char, string, age: int] 

但这并不适用于最后提交

type T3 = tuple[string, int] # compilation error 

这是为什么?这是打算?为什么最后一个字段总是被命名?

回答

6

编译器实际上解释T1与命名stringageint类型的两个和T2为元组与string命名char字段,字段的元组,和int类型的age。简而言之,逗号分隔列表中的独立“类型”被解释为字段名称。

这可能是一个编译器错误(因为您不能使用字段名称作为构造函数),因为它不验证字段名称。但并不是必须仅为最后一个元素提供类型:该类型将应用于冒号前面逗号分隔列表中的所有元素。