能見度
我們可將模組視為隱私邊界:
- 模組項目預設為不公開 (會隱藏實作詳細資料)。
- 父項和同層項目一律會顯示。
- 換句話說,如果項目顯示在
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)
瀏覽權限是一種常見模式。 - 您也可以授予特定路徑的瀏覽權限,但這較不常見。
- 無論如何,都請務必將瀏覽權限授予祖系模組 (及其所有子系)。