在Unison中,您可以通过指定字段名和值来创建记录吗?



对于Unison的记录类型,它被提到:

为Volunteer创建值不涉及任何额外开销。没有必要提及字段名。

但是在创建新记录时可以指定记录的字段吗?我喜欢这样做来提高可读性(以增加冗长为代价)。

是否可以在创建新记录时指定记录的字段?

如果你的意思是创建一个Volunteer值的新实例,那么不,我不相信这是目前可能的。

我喜欢这样做来提高可读性(以增加冗长为代价)

由于几个原因,这在Unison语言中变得很有趣。最终,数据类型、它的构造函数和它的字段由它们实现的散列来标识。字段名如"age"本质上就是这些哈希的别名。在特定的代码库中,可能有零个、一个或多个与"年龄"相关联的名称。字段。因此,对于编译器来说,存储关于您为每个参数提供的标签的信息可能没有意义,因为这些信息在某种程度上是任意的,并且可能因代码库而异。

可能在Unison中有意义的是,不存储您在序列化代码中为每个参数提供的字段名,而是让漂亮的打印机在打印记录类型的构造函数调用时指定字段名。然而,这对某些人来说可能有点冗长,所以你可以想象这样一个世界:Unison有一个可配置的漂亮打印机,用户可以为记录类型构造函数调用指定"打印字段名",只要至少有两个参数。如果Unison要获得这种"漂亮的打印机"功能,代码解析器将需要更改为接受指定的构造函数字段名,以便"漂亮打印"的构造函数调用生成有效的代码。

据我所知,即使没有任何漂亮的打印机更改,解析器也可能接受并检查问题中建议的字段名。但是,由于我前面提到的原因(名称可能在不同的代码库中有所不同),在存储代码时很可能会丢弃这些信息。

相关内容

  • 没有找到相关文章