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 。
參考: