结构体

在 Rust 中,结构体(Struct)用于将多个相关的值组合在一起,形成一个复合数据类型。结构体的每个字段可以有不同的类型,适合用于描述一个具体的实体。

1. Rust 中的结构体内容

创建结构体

struct Person {
    name: String,
    age: u32,
}

fn main() {
    let person = Person {
        name: String::from("Alice"),
        age: 30,
    };

    println!("姓名: {}, 年龄: {}", person.name, person.age);
}

结构体的字段

  • 结构体中的每个字段都有名称和类型,可以是任意类型。

  • 字段可以是可变的,通过在实例定义时指定为 mut 来实现。

结构体方法

结构体可以定义方法,通过 impl 块来实现。

2. Rust 中的结构体与 C 中的结构体比较

特性
Rust 结构体
C 结构体

类型安全

编译时检查类型,防止类型错误

没有内置的类型安全,可能导致错误

方法

可以为结构体定义方法(impl 块)

不能定义方法,只能操作结构体字段

可变性

通过 mut 关键字定义可变结构体实例

可以通过指针和直接访问来修改字段

内存管理

Rust 有所有权系统和借用检查

手动内存管理,易出错

默认值

使用 Default trait 提供默认值

无法直接提供默认值

元组结构体

支持元组结构体(只包含字段的类型)

不支持类似的概念

3. 总结

Rust 的结构体提供了类型安全和方法支持,允许更灵活地组织数据。而 C 的结构体更简单,但缺乏类型安全和方法。Rust 的所有权系统和借用机制使其在内存管理上更加安全和高效。选择使用哪种语言的结构体,通常取决于具体的需求和开发环境。

Last updated