美文网首页
Rust 有问有答之 use 关键字

Rust 有问有答之 use 关键字

作者: DarkAlien | 来源:发表于2020-05-26 19:41 被阅读0次

    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 。

    参考:

    相关文章

      网友评论

          本文标题:Rust 有问有答之 use 关键字

          本文链接:https://www.haomeiwen.com/subject/twavahtx.html