我注意到我可以在nimrod中声明元组而不给每个字段命名.例如:
type T1 = tuple[string, age: int]
type T2 = tuple[char, string, age: int]
Run Code Online (Sandbox Code Playgroud)
但这并不适用于最后提交的内容
type T3 = tuple[string, int] # compilation error
Run Code Online (Sandbox Code Playgroud)
这是为什么?这是有意的吗?为什么要始终命名最后一个字段?
编译器实际上是解释T1与命名字段的元组string和age类型都int和T2与命名字段的元组char,string以及age类型int.简而言之,逗号分隔列表中的独立"类型"被解释为字段名称.
这可能是编译器错误(因为您不能使用构造函数的字段名称),因为它不验证字段名称.但并不是您必须仅为最后一个元素提供类型:该类型将应用于冒号前面的逗号分隔列表中的所有元素.