tuples和records有什么区别?
tuples和records有什么区别?
这两种都是产品类型,可以让你从多个更简单的类型构建类型。一些语言将元组视为记录的一种形式。
元组是一个有序的元素组,比如 (10, 25)。
记录通常是一组带名称的元素,例如 { "x": 10, "y": 25 }
,其中值有两个标记为 x
和 y
的字段,而 x
字段的值为 10
。
“tuple”一词来自于“quintuple”、“sextuple”、“septuple”和“octuple”这些词上常见的“-tuple”后缀,它们分别表示5、6、7和8个元素的组合。
“record”一词来自于数据表。您可以将具有 x
和 y
字段的所有可能的元组视为一张表,其中列对应于字段,行收集特定记录实例的所有字段。
value address field x field y
0xABCD 10 25
0x1234 42 "xyz"
您可以将元组视为一种记录,其中元组中的索引是等效记录中元素的名称,因此(10,25)
是{"0":10,"1":25}
。 我相信Standard ML和相关语言使用记录作为类型合取的基本单位(代数数据类型提供了类型拆卸),并以这种方式将元组视为一种记录。
根据维基百科:
在计算机科学中,记录(也称为元组或结构)是最简单的数据结构之一,由两个或多个值或变量存储在连续的内存位置中;以便每个组件(称为记录的字段或成员)可以通过将不同的偏移量应用于起始地址来访问。
我认为元组和记录之间几乎没有区别。