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
模塊)訪問。
0 條評論,你可以發表評論,我們會進行改進
