结构体和枚举

发布时间:2025年1月6日

结构体(Structs)

结构体是一种自定义数据类型,可以将多个相关联的值组合在一起:

结构体定义和使用
struct User {
    username: String,
    email: String,
    sign_in_count: u64,
    active: bool,
}

fn main() {
    let user1 = User {
        email: String::from("user@example.com"),
        username: String::from("username123"),
        active: true,
        sign_in_count: 1,
    };
}

方法语法

我们可以为结构体定义方法:

结构体方法实现
impl Rectangle {
    fn area(&self) -> u32 {
        self.width * self.height
    }
    
    fn can_hold(&self, other: &Rectangle) -> bool {
        self.width > other.width && self.height > other.height
    }
}

枚举(Enums)

枚举允许你定义一个类型,它可以是多个可能的变体之一:

枚举定义和方法
enum Message {
    Quit,
    Move { x: i32, y: i32 },
    Write(String),
    ChangeColor(i32, i32, i32),
}

impl Message {
    fn call(&self) {
        // 方法体
    }
}

Option 枚举

Option 是 Rust 标准库中最常用的枚举之一:

Option 枚举使用
fn main() {
    let some_number = Some(5);
    let some_string = Some("a string");
    let absent_number: Option = None;
    
    match some_number {
        Some(i) => println!("Got a number: {}", i),
        None => println!("No number found"),
    }
}

练习

完成以下练习来巩固所学知识:

  1. 创建一个表示几何形状的枚举,包含圆形、矩形和三角形
  2. 为几何形状枚举实现计算面积的方法
  3. 使用 Option 类型实现一个安全的除法函数
返回首页