问题描述
元组和记录之间有什么区别?
What is difference between tuples and records?
推荐答案
两者都是,让您从多个简单的类型构建类型。某些语言将元组视为一种记录。
Both are product types which let you build types from multiple simpler types. Some languages treat tuples as a kind of record.
元组是一组有序的元素,例如(10,25)。
A tuple is an ordered group of elements, like (10, 25).
记录通常是一组命名元素,如 {x:10,y:25 }
其中值有两个标签为 x
和 y
的字段, code> x 是 10
。
A record is typically a group of named elements like { "x": 10, "y": 25 }
where the value has two fields labelled x
and y
and the value of field x
is 10
.
tuple一词来自五元组,六元组,七分之一,八元组中常见的元组后缀,其意思是5,6,7,和$ 8。
The word "tuple" comes from the common "-tuple" suffix on "quintuple", "sextuple", "septuple", "octuple" which mean groups of 5, 6, 7, and 8 respectively.
单词record来自数据表。您可以将 x
和 y
字段的所有可能元组视为一列,其中列对应于字段和行,特定记录实例的字段。
The word "record" comes from data tables. You can think of all possible tuples with x
and y
fields as a table where columns correspond to fields and rows collect all the fields for a particular record instance.
value address field x field y
0xABCD 10 25
0x1234 42 "xyz"
产品类型的等价
您可以将元组视为一种记录,其中元组中的元素的索引是其等效记录中的名称,因此(10,25)
{0:10,1:25}
。我相信标准ML和相关语言使用记录作为的基本单位(提供类型分离),并以这种方式将元组视为一种记录。
Equivalence of product types
You can treat a tuple as a kind of record, where the index of an element in a tuple is its name within the equivalent record, so (10, 25)
is { "0": 10, "1": 25 }
. I believe Standard ML and related languages use records as the basic unit of type conjunction (algebraic data types provide type disjunction) and treat tuples as a kind of record in this way.
这篇关于元组vs记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!