Rust 教程 目录

Rust 复合类型

结构体 (Structs)

在 Rust 中,结构体是一种复合类型,用于定义具有多个字段的数据结构。你可以将结构体视为一种自定义的数据类型,它允许你将相关的数据捆绑在一起。

定义结构体

使用 struct 关键字来定义一个结构体。下面是一个简单的例子:

在这个例子中,我们定义了一个名为 User 的结构体,它包含四个字段:usernameemailsign_in_countactive

实例化结构体

要创建结构体的实例,可以使用结构体名后跟一组大括号,其中包含各个字段的值。例如:

如果你想要省略某些字段,那么你需要指定所有字段的名称。例如:

在这里,我们通过使用点和点符号 ..user1 来表示我们想要使用 user1 的其余字段。

元组结构体

元组结构体是另一种类型的结构体,它类似于元组,但每个元组结构体都有一个名称,这使得它成为一个不同的类型。元组结构体没有命名字段,只有类型。

单位结构体

单位结构体是一种特殊的结构体,它没有任何字段。它们可以用于实现 trait 或者在泛型中作为占位符使用。

枚举 (Enums)

枚举是一种复合类型,允许你定义一个有限的变量集合,每个变量都代表某种特定的状态或条件。在 Rust 中,枚举允许你创建更清晰和更具表现力的代码。

定义枚举

使用 enum 关键字来定义一个枚举。下面是一个简单的例子:

在这个例子中,我们定义了一个名为 Message 的枚举,它包含四种可能的变体:QuitMoveWriteChangeColorMove 变体有一个带有标签的匿名元组结构体,而 WriteChangeColor 则是简单的元组。

使用枚举

你可以像处理其他类型一样处理枚举,例如,使用匹配表达式来根据枚举的不同变体执行不同的操作。

-- -------------------- ---- -------
-- -------------------- -------- -
    ----- --- -
        ------------- -- -
            -----------------
        -
        ------------- - -- - - -- -
            -------------- -- -- --- -- ---- -- ---
        -
        -------------------- -- -
            ---------------- ---- ------
        -
        ----------------------- -- -- -- -
            ---------------- ----- -- -- --- -- --- -- ---- -- -- ---
        -
    -
-

--- -------- - --------------
--- -------- - ------------- - -- --- -- -- --
--- --------- - ---------------------------------- ---------
--- --------- - ------------------------- -- ---

--------------------------
--------------------------
---------------------------
---------------------------

元组 (Tuples)

元组是 Rust 中的一种复合类型,它允许你将不同类型的数据组合在一起。元组中的元素可以通过索引访问,索引从零开始。

定义元组

定义元组非常简单,只需列出元素类型并用逗号分隔即可:

访问元组元素

可以使用点运算符和索引来访问元组中的元素:

解构元组

你也可以在赋值时解构元组,从而将元组中的元素分配给单独的变量:

数组 (Arrays)

数组是一种固定长度的序列,这意味着一旦创建了数组,其长度就不可改变。数组中的所有元素必须是相同类型。

定义数组

定义数组的方式是提供类型注释,后跟方括号和长度:

或者你可以通过重复单个值来初始化数组:

访问数组元素

你可以使用索引来访问数组中的元素:

请注意,数组的索引是从零开始的,且访问数组的索引超出范围会导致运行时错误。

向量 (Vectors)

向量是动态数组,它们可以在运行时增长或收缩。与数组不同,向量中的元素不必是相同的类型。

创建向量

使用 Vec 类型来创建向量。你可以使用 vec! 宏来初始化一个向量:

添加元素

使用 push 方法可以向向量添加新的元素:

访问元素

要访问向量中的元素,可以使用 get 方法或直接通过索引:

-- -------------------- ---- -------
--- - - ------- -- -- -- ---

--- ------ ---- - ------
------------- ----- ------- -- ---- -------

----- -------- -
    ----------- -- ------------- ----- ------- -- ---- -------
    ---- -- --------------- -- -- ----- -----------
-

请注意,使用索引访问元素时,如果索引超出范围会引发 panic,而使用 get 方法则返回一个可选值,不会导致程序崩溃。

以上便是 Rust 中几种常见的复合类型介绍。这些类型提供了多种方式来组织和操作数据,并且每种类型都有其独特的用途和优势。

上一篇: Rust 标量类型
下一篇: Rust 函数
纠错
反馈