可见性
``rust,editable
// 一个名为
my_mod的模块
mod my_mod {
// 模块中的项默认具有私有的可见性
fn private_function() {
println!("called
my_mod::private_function()`”);
}
fn function() {
println!(“called function()
“);
}
// 公有项,包括嵌套模块内的,都可以在父模块外部访问。
my_mod::indirect_access();
my_mod::nested::function();
my_mod::call_public_function_in_my_mod();
// pub(crate) 项可以在同一个 crate 中的任何地方访问
// 报错!函数 `public_function_in_my_mod` 是私有的
//my_mod::nested::public_function_in_my_mod();
// 试一试 ^ 取消该行的注释
// 模块的私有项不能直接访问,即便它是嵌套在公有模块内部的
// 报错!`private_function` 是私有的
// 报错!`private_function` 是私有的
//my_mod::nested::private_function();
// 试一试 ^ 取消此行的注释
// Error! `private_nested` is a private module
//my_mod::private_nested::function();
// 试一试 ^ 取消此行的注释
}