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模組)訪問。


上一篇: Rust檔系統 下一篇: Rust use關鍵字引用模組