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