Rust 嵌套模块
mod food {
struct Cake;
struct Smoothie;
struct Pizza;
}
use food::Cake
fn main() {
let eatable = Cake;
}
Rust 将文件用作模块
模块也可以创建成文件
crate:绝对导入前缀,指向当前项目的根目录。
self:相对导入前缀,指向与当前模块相关的元素。
super:相对导入前缀,可以用于从父模块导入元素。
// modules_demo/foo.rs
pub struct Bar;
impl Bar {
pub fn init() {
println!("Bar type initialized");
}
}
// modules_demo/main.rs
mod foo;
use crate::foo::Bar;
fn main() {
let _bar = Bar::init();
}
Rust 将目录用作模块
+ my_program
└── foo/
└── bar.rs
└── foo.rs
└── main.rs
// my_program/foo/bar.rs
pub struct Bar;
impl Bar {
pub fn hello() {
println!("Hello from Bar !");
}
}
// my_program/foo.rs
mod bar;
pub use self::bar::Bar;