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關鍵字引用模組