返回

Rust 之 Struct 基础进阶

后端

Rust 中的 Struct

在 Rust 中,struct 是数据结构,允许您将相关数据字段组合在一起。struct 可以具有方法(functions associated with a struct type)和关联函数(functions associated with the struct type itself)

Struct 的语法

struct StructName {
    field1: Type1,
    field2: Type2,
    ...
}
  • StructName 是结构的名称。
  • field1field2 等是结构的字段。
  • Type1Type2 等是字段的类型。

Struct 的定义

struct User {
    name: String,
    age: u32,
    active: bool,
}

上面的代码定义了一个名为 User 的结构。这个结构有两个字段:nameageactive

Struct 的使用

let user1 = User {
    name: "John Doe".to_string(),
    age: 30,
    active: true,
};

let user2 = User {
    name: "Jane Doe".to_string(),
    age: 25,
    active: false,
};

上面的代码创建了两个 User 结构的实例。

Struct 的方法

impl User {
    fn greet(&self) {
        println!("Hello, my name is {}!", self.name);
    }
}

上面的代码定义了 greet 方法。greet 方法允许我们以一种结构化的方式访问和操作 User 结构的数据。

Struct 的关联函数

impl User {
    fn new(name: String, age: u32, active: bool) -> User {
        User {
            name,
            age,
            active,
        }
    }
}

上面的代码定义了 new 关联函数。new 关联函数允许我们以一种结构化的方式创建 User 结构的实例。

Struct 的特性

Rust 中的 struct 具有以下特性:

  • 封装 :struct 将数据隐藏在字段中,并通过方法公开数据。这使得数据更加安全,并允许您控制对数据的访问。
  • 可组合性 :struct 可以组合在一起形成更大的结构。这使得您可以创建复杂的数据结构,并轻松地对这些结构进行操作。
  • 重用性 :struct 可以被重用,以创建多个具有相同字段和方法的数据结构。这使得您可以节省时间并减少代码重复。

Rust 中的常用结构体

struct ****
std::vec::Vec 一个动态数组,可以根据需要增长或缩小。
std::string::String 一个可变长度的字符串。
std::hash::HashMap 一个哈希表,可以根据键快速查找值。
std::collections::BTreeMap 一个二叉搜索树,可以根据键快速查找值。

总结

Rust 中的 struct 是强大的数据类型,可以用于组织和存储数据。struct 可以具有方法和关联函数,并可以实现各种特性。Rust 中的 struct 广泛用于各种应用程序,包括游戏、网络应用程序和操作系统。