Rust 有問有答之 use 關鍵字

AllenXu9527發表於2020-05-26

use 是什麼

use 是 Rust 程式語言的關鍵字。using 是 程式語言 C# 的關鍵字。

關鍵字是預定義的保留識別符號,對編譯器有特殊意義。

using 關鍵字有三個主要用途:

  • using 語句定義一個範圍,在此範圍的末尾將釋放物件。

  • using 指令為名稱空間建立別名,或匯入在其他名稱空間中定義的型別。

  • using static 指令匯入單個類的成員。

use的用途是什麼

類比using,use的用途有:

  • 用於引用某個外部模組

  • 直接使用列舉值,而無需手動加上作用域

  • 為某個作用域下的方法或作用域建立別名

    用於引用某個外部模組

外部模組 a.rs,程式碼內容如下

mod a
{
    fn print_function()
    {
        println!("This is a.print_function.");
    }
}

主函式 main.rs 想要呼叫 print_function,需要對 mod 標識訪問級別,使用關鍵字 pub。所以 a.rs 的內容變動如下

pub mod a
{
    fn print_function()
    {
        println!("This is a.print_function.");
    }
}

主函式 main.rs 呼叫 print_function 如下,使用關鍵字 use:

use a;

fn main()
{
    a::print_function();
}

直接使用列舉值,而無需手動加上作用域

enum Status {
    Rich,
    Poor,
}

fn main()
{
    use Status::{Poor, Rich};
    let status = Poor;
}

上述程式碼使用關鍵字 use 顯示宣告瞭列舉 Status,所以在 let status = Poor; 這行程式碼中無需使用 Status::Poor 手動加上作用域的方式宣告 Poor

當然如果列舉值過多時,可以使用 * 宣告所有列舉值,即 use Status::*;

為某個作用域下的方法或作用域建立別名

pub mod a 
{
    pub mod b
    {
        pub fn function()
        {
            println!("This is a::b::function");
        }

        pub fn other_funtion()
        {
            println!("This is a::b::other_funtion");
        }
    }
}

use a::b as ab;
use a::b::other_funtion as ab_funtion;

fn main()
{
    ab::function();
    ab::other_funtion();
    ab_funtion();
}

如上述例子所示

use a::b as ab;使用關鍵字 use 為作用域建立別名。

use a::b::other_funtion as ab_funtion; 為方法 other_funtion 建立別名 ab_funtion 。

參考:

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章