Box 的基本用法
fn main() {
// 使用 Box 在堆上分配一个整数
let boxed_number: Box<i32> = Box::new(42);
// 使用 * 解引用 Box 中的值
println!("Value inside the box: {}", *boxed_number);
}
在上述例子中,Box::new(42) 在堆上分配了一个整数,并将指针存储在 boxed_number 中。使用 *boxed_number 解引用 Box,获取堆上存储的值。
模块
模块是 Rust 中的一种组织代码的方式,可以将相关的项(如函数、结构体、枚举、trait 等)放在一起,形成一个逻辑单元。模块有助于组织代码、提高可读性,并支持封装和代码重用。
定义模块
// 定义模块
mod my_module {
// 模块中的项
pub fn hello() {
println!("Hello from my_module!");
}
pub struct MyStruct {
pub value: i32,
}
}
fn main() {
// 使用模块中的项
my_module::hello();
let my_instance = my_module::MyStruct { value: 42 };
println!("Value from MyStruct: {}", my_instance.value);
}
在这个例子中,通过 mod my_module 定义了一个名为 my_module 的模块,其中包含了一个函数 hello 和一个结构体 MyStruct。通过 my_module::hello() 和 my_module::MyStruct 可以访问模块中的项。
模块的文件组织
Rust 的模块系统与文件系统有关,通常一个模块对应一个文件。模块的文件名应与模块名相同,并且使用 snake_case 命名风格。
例如,模块定义在 my_module.rs 文件中:
// my_module.rs
pub fn hello() {
println!("Hello from my_module!");
}
pub struct MyStruct {
pub value: i32,
}
在主程序中通过 mod my_module; 引入模块:
// main.rs
mod my_module;
fn main() {
my_module::hello();
let my_instance = my_module::MyStruct { value: 42 };
println!("Value from MyStruct: {}", my_instance.value);
}
这是 Rust 中模块和 Box 的基本概念。模块有助于组织代码,而 Box 则提供了堆上分配的灵活性。
转载请注明出处:http://www.pingtaimeng.com/article/detail/6807/Rust