使用 use 声明进行 Rust 命名空间管理

Beginner

This tutorial is from open-source community. Access the source code

简介

在本实验中,use 声明用于消除 Rust 中手动作用域的需求,并使名称无需显式指定命名空间即可使用。

注意:如果实验未指定文件名,你可以使用任何你想要的文件名。例如,你可以使用 main.rs,并通过 rustc main.rs &&./main 进行编译和运行。

use

use 声明可用于无需手动作用域:

// 一个用于隐藏未使用代码警告的属性。
#![allow(dead_code)]

enum Status {
    Rich,
    Poor,
}

enum Work {
    Civilian,
    Soldier,
}

fn main() {
    // 显式地 `use` 每个名称,这样它们无需手动作用域即可使用。
    use crate::Status::{Poor, Rich};
    // 自动 `use` `Work` 中的每个名称。
    use crate::Work::*;

    // 等同于 `Status::Poor`。
    let status = Poor;
    // 等同于 `Work::Civilian`。
    let work = Civilian;

    match status {
        // 注意由于上面的显式 `use`,这里无需作用域。
        Rich => println!("The rich have lots of money!"),
        Poor => println!("The poor have no money..."),
    }

    match work {
        // 再次注意这里无需作用域。
        Civilian => println!("Civilians work!"),
        Soldier  => println!("Soldiers fight!"),
    }
}

总结

恭喜你!你已完成“Use”实验。你可以在 LabEx 中练习更多实验以提升你的技能。