橘子味的心
标题:Rust公开函数

pub关键字用于声明的开头,以便外部函数可以访问该函数。

以下是私有规则:

  • 如果任何函数或模块是公共的,则任何父模块都可以访问它。
  • 如果任何函数或模块是私有的,则可以通过其直接父模块或父项的子模块来访问它。

  • 通过下面一个简单的例子来理解这一点:

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()函数是根模块,而outer模块是项目的当前根模块。 因此,main()函数可以访问outer模块。

函数a()是公共的,对outer::a()的调用不会导致任何错误,但是当main()函数试图访问outer::b()函数时,它会导致编译错误,因为它是一个私有函数。

main()函数无法访问内部模块,因为它是私有的。inner模块没有子模块,因此只能由其父模块(即outer模块)访问。


分类