📜  Rust使函数公开

📅  最后修改于: 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()函数无法访问内部模块,因为它是私有的。内部模块没有子模块,因此只能由其父模块(即外部模块)访问。