结构体和枚举
发布时间: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"),
}
}
练习
完成以下练习来巩固所学知识:
- 创建一个表示几何形状的枚举,包含圆形、矩形和三角形
- 为几何形状枚举实现计算面积的方法
- 使用 Option 类型实现一个安全的除法函数