第 9 章 结构体
9.1 具名字段型结构体
- 深入了解
- 翻译
- 解释
- 总结
![](https://static001.geekbang.org/resource/image/d0/e4/d0880927e2a522a038be2d04bf19dfe4.png)
Rust 中的结构体(struct/structure)类似于 C 和 C++ 中的 struct 类型、Python 中的类和 JavaScript 中的对象。结构体将多个不同类型的值组合成一个单一的值,以便你能把它们作为一个单元来处理。Rust 有 3 种结构体类型:具名字段型结构体、元组型结构体和单元型结构体。具名字段型结构体会为每个组件命名;元组型结构体会按组件出现的顺序标识它们;单元型结构体则根本没有组件。本章详细解释了每种类型的定义和使用方法,介绍了结构体表达式的构造和访问,以及如何创建具名字段结构体的值。同时,还介绍了元组型结构体的定义和使用方法,以及与具名字段型结构体的比较。 元组型结构体适用于创造新类型(newtype),即建立一个只包含单组件的结构体,以获得更严格的类型检查。单元型结构体声明了一个根本没有元素的结构体类型,它的值不占用内存,类似于单元类型 `()`。在内存中,具名字段型结构体和元组型结构体是一样的:值的集合以特定方式在内存中布局。Rust 方法不会像 C++ 或 Java 中的方法那样出现在结构体定义中,而是会出现在单独的 `impl` 块中。 文章还介绍了方法的 `self` 参数,包括通过值或引用获取 `self`,以及通过智能指针类型传递 `self`。此外,还介绍了类型关联函数和关联常量的概念,以及泛型结构体的定义和使用方法。通过这些内容,读者可以深入了解 Rust 中结构体的高级特性和灵活性,以及如何利用这些特性来提高代码的可读性和可维护性。 另外,文章还介绍了带生命周期参数和常量参数的泛型结构体,展示了如何在 Rust 中使用这些特性来创建更加灵活和高效的数据结构。这些内容为读者提供了更深入的了解,帮助他们在实际开发中更好地应用 Rust 的特性和优势。文章还介绍了让结构体类型派生自某些公共特型的方法,以及内部可变性的概念,为读者提供了更全面的 Rust 结构体知识。
《Rust 程序设计(第 2 版)》