元组类型

语法

TupleType :

      ( )

   | ( ( 类型 , )+ 类型? )

元组类型 是一系列结构化类型1,用于表示其他类型的异构列表。

元组类型的语法是用括号括起来的、逗号分隔的类型列表。一元元组在其元素类型后需要一个逗号,以便与 带括号的类型 区分开来。

元组类型的字段数量等于类型列表的长度。字段数量决定了元组的 _元数_。具有 n 个字段的元组称为 _n 元元组_。例如,具有 2 个字段的元组是二元元组。

元组的字段使用与其在类型列表中的位置相匹配的递增数字名称来命名。第一个字段是 0。第二个字段是 1。以此类推。每个字段的类型是元组类型列表中相同位置的类型。

为了方便和历史原因,没有字段的元组类型 (()) 通常称为 _单元_ 或 _单元类型_。它的唯一值也称为 _单元_ 或 _单元值_。

元组类型的一些示例

  • () (单元)
  • (f64, f64)
  • (String, i32)
  • (i32, String) (与上一个示例不同的类型)
  • (i32, f64, Vec<String>, Option<bool>)

此类型的的值使用 元组表达式 构造。此外,如果没有任何其他有意义的值可供其求值,则各种表达式将产生单元值。可以通过 元组索引表达式模式匹配 访问元组字段。

1

如果结构化类型的内部类型等效,则它们始终等效。有关元组的名义版本,请参阅 元组结构体