能見度

我們可將模組視為隱私邊界:

  • 模組項目預設為不公開 (會隱藏實作詳細資料)。
  • 父項和同層項目一律會顯示。
  • 換句話說,如果項目顯示在 foo 模組中,則會出現在 foo 的所有子系中。
mod outer {
    fn private() {
        println!("outer::private");
    }

    pub fn public() {
        println!("outer::public");
    }

    mod inner {
        fn private() {
            println!("outer::inner::private");
        }

        pub fn public() {
            println!("outer::inner::public");
            super::private();
        }
    }
}

fn main() {
    outer::public();
}
This slide should take about 5 minutes.
  • 使用 pub 關鍵字將模組設為公開。

此外,您也可以使用進階的 pub(...) 指定碼來限制公開的瀏覽權限範圍。

  • 請參閱 Rust 參考資料
  • 設定 pub(crate) 瀏覽權限是一種常見模式。
  • 您也可以授予特定路徑的瀏覽權限,但這較不常見。
  • 無論如何,都請務必將瀏覽權限授予祖系模組 (及其所有子系)。