Rust 结构体

· 约 5 分钟读完 · 第 38 / 142 章

定义结构体

在 Rust 中,你可以使用 struct 关键字来定义一个结构体。结构体是一种用户自定义的数据类型,可以包含多个不同类型的字段。

上述代码定义了一个名为 User 的结构体,它有四个字段:username、email、sign_in_count 和 active。每个字段都有一个类型注解。

创建实例

要创建结构体的实例,只需提供与结构体字段相匹配的值:

在这个例子中,我们创建了一个 User 类型的变量 user1,并初始化了它的所有字段。

可选字段

在某些情况下,你可能希望结构体的某些字段是可选的。这可以通过使用 Option<T> 类型来实现:

在这个例子中,我们定义了一个名为 Rectangle 的结构体,并且 height 字段是一个可选字段。我们可以为 height 字段提供一个 Some(u32) 值或 None 值。

元组结构体

元组结构体是一种特殊的结构体,它没有命名字段,而是通过位置来访问其字段:

在这个例子中,我们定义了两个元组结构体 Color 和 Point。它们分别表示颜色和点,但它们都是通过位置来访问字段的。

单元结构体

单元结构体是一种没有任何字段的结构体。它们通常用于实现 trait:

在这个例子中,我们定义了一个名为 Nil 的单元结构体,并创建了一个 Nil 类型的实例。

更新语法

当你需要创建一个与现有结构体实例非常相似的新实例时,可以使用更新语法:

在这个例子中,我们创建了一个新的 User 实例 user2,并将 user1 的其余部分复制到 user2 中。

结构体方法

你可以在结构体上定义方法。方法是具有特殊形式的函数,其中 self 参数是第一个参数:

在这个例子中,我们在 Rectangle 结构体上定义了一个名为 area 的方法,该方法计算矩形的面积。

关联函数

关联函数不是方法,因为它们不接受 self 作为参数。它们通常用于构造结构体的实例:

在这个例子中,我们定义了一个名为 square 的关联函数,该函数返回一个新的 Rectangle 实例,其宽度和高度相同。

以上是关于 Rust 结构体的详细内容。通过这些示例,你应该能够理解如何定义、实例化和操作结构体。