Tuple types
元组类型
commit: ff68c99b2b2003998b0f951fcb8dc290370a0275
本章译文最后维护日期:2020-11-14
句法
TupleType :
(
)
|(
( Type,
)+ Type?)
元组类型是把不同类型放在同一个列表中异构组成结构类型[1]。这个列表中的每个条目(entry)都是对应元组的一个元素[2]。元素可以用它在列表中的位置数字来索引,读作第 n 个元素,索引从 0(
0
)开始。
元素的数量决定元组的元数(arity)。有 n
个元素的元组叫做 n元元组(n-ary tuple
)。例如,有两个元素的元组就是二元元组。
出于方便和历史原因,不带元素(()
)的元组类型通常被称为单元(unit)或单元类型(unit type)。它的值也被称为单元或单元值。
元组类型是通过在圆括号封闭的逗号分隔的列表中列出其元素的类型来编写的。一元元组的元素类型后面需要一个逗号,以便和圆括号组合类型(parenthesized type)区分开来。
元组类型的示例:
()
(单元)(f64, f64)
(String, i32)
(i32, String)
(跟前一个示例类型不一样)(i32, f64, Vec<String>, Option<bool>)
这种类型的值是使用元组表达式来构造的。此外,如果没有其他有意义的值可供求得/返回,很多种表达式都将生成单元值。元组元素可以通过元组索引表达式或模式匹配来访问。