use

use 声明可以用来避免手动作用域限定:

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

enum Stage {
    Beginner,
    Advanced,
}

enum Role {
    Student,
    Teacher,
}

fn main() {
    // 显式 `use` 每个名称,使它们可以不需要
    // 手动作用域限定就能使用。
    use crate::Stage::{Beginner, Advanced};
    // 自动 `use` `Role` 内的每个名称。
    use crate::Role::*;

    // 等同于 `Stage::Beginner`。
    let stage = Beginner;
    // 等同于 `Role::Student`。
    let role = Student;

    match stage {
        // 注意由于上面的显式 `use`,这里不需要作用域限定。
        Beginner => println!("初学者正在开始他们的学习之旅!"),
        Advanced => println!("高级学习者正在掌握他们的科目..."),
    }

    match role {
        // 再次注意这里不需要作用域限定。
        Student => println!("学生正在获取知识!"),
        Teacher => println!("教师正在传播知识!"),
    }
}

另请参阅:

matchuse