📅  最后修改于: 2021-01-08 13:46:29             🧑  作者: Mango
在“酒吧”关键字在声明的开头,所以函数变得对外界函数访问使用。
以下是隐私规则:
让我们通过一个简单的例子来理解这一点:
mod outer
{
pub fn a()
{
println!("function a");
}
fn b()
{
println!("function b");
}
mod inner
{
pub fn c()
{
println!("function c");
}
fn d()
{
println!("function d");
}
}
}
fn main()
{
outer::a();
outer::b();
outer::inner::c();
outer::inner::d();
}
输出:
在上面的示例中,main()函数是根模块,而外部模块是项目的当前根模块。因此,main()函数可以访问外部模块。
由于函数a()是公共的,因此对external :: a()的调用不会引起任何错误,但是当main()函数尝试访问external :: b()函数,由于它会导致编译错误是私人函数。
main()函数无法访问内部模块,因为它是私有的。内部模块没有子模块,因此只能由其父模块(即外部模块)访问。