Rust 的文档中有一些我不明白的地方:它是pub前面的关键字use,它有什么作用?这是 Rust 文档中的示例(此处):
mod front_of_house {
pub mod hosting {
pub fn add_to_waitlist() {
println!("Added to waitlist");
}
}
}
pub use crate::front_of_house::hosting;
pub fn eat_at_restaurant() {
hosting::add_to_waitlist();
hosting::add_to_waitlist();
hosting::add_to_waitlist();
}
Run Code Online (Sandbox Code Playgroud)
当我尝试制作一个与之交互的主程序时,我想出了:
use tests::eat_at_restaurant;
fn main() {
eat_at_restaurant();
}
Run Code Online (Sandbox Code Playgroud)
但是当我删除关键字时,use它会执行相同的操作,并且在任何情况下都无法hosting::add_to_waitlist从 main 调用,那么这里会发生什么?如果我不输入关键字有什么区别pub?
Pos*_*rub 23
use用于将项目导入到当前模块中,
pub use允许我们(不仅导入,而且)重新导出该项目。
这是一个需要的示例pub use:
// src/foo/mod.rs
mod bar;
pub use bar::item;
Run Code Online (Sandbox Code Playgroud)
// src/foo/bar.rs
pub fn item() {
println!("Hello, world!");
}
Run Code Online (Sandbox Code Playgroud)
// src/main.rs
mod foo;
use foo::item;
fn main() {
item();
}
Run Code Online (Sandbox Code Playgroud)
如果我们使用普通的,use那么将item无法访问。但是,由于我们添加了pub关键字,item现在可用于使用该nested模块的所有模块。
我们称其为“重新导出”,因为item实际上并未在 中定义foo,而是从 中foo“重新导出” 。itemfoo::bar
| 归档时间: |
|
| 查看次数: |
5903 次 |
| 最近记录: |