Rust 有問有答之 use 關鍵字

use 是什麼

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

關鍵字是預約義的保留標識符,對編譯器有特殊意義。git

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

  • using 語句定義一個範圍,在此範圍的末尾將釋放對象。編程語言

  • using 指令爲命名空間建立別名,或導入在其餘命名空間中定義的類型。函數

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

use的用途是什麼

類比using,use的用途有:spa

  • 用於引用某個外部模塊
  • 直接使用枚舉值,而無需手動加上做用域
  • 爲某個做用域下的方法或做用域建立別名

用於引用某個外部模塊

外部模塊 a.rs,代碼內容以下.net

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

主函數 main.rs 想要調用 print_function,須要對 mod 標識訪問級別,使用關鍵字 pub。因此 a.rs 的內容變更以下code

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

主函數 main.rs 調用 print_function 以下,使用關鍵字 use:htm

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 。

參考:

相關文章
相關標籤/搜索