use
use 선언을 사용하면 이름을 사용하기 위해 전체 모듈 경로를 입력하는 것을 피할 수 있습니다:
// 사용되지 않는 코드에 대한 경고를 숨기기 위한 속성입니다.
#![allow(dead_code)]
enum Stage {
Beginner,
Advanced,
}
enum Role {
Student,
Teacher,
}
fn main() {
// 각 이름을 명시적으로 `use`하여 수동으로 스코프를 지정하지 않고도
// 사용할 수 있게 합니다.
use Stage::{Beginner, Advanced};
// `Role` 내부의 각 이름을 자동으로 `use`합니다.
use Role::*;
// `Stage::Beginner`와 동일합니다.
let stage = Beginner;
// `Role::Student`와 동일합니다.
let role = Student;
match stage {
// 위의 명시적 `use` 덕분에 스코프 지정이 필요 없음에 주목하세요.
Beginner => println!("초보자들이 학습 여정을 시작합니다!"),
Advanced => println!("상급 학습자들이 주제를 마스터하고 있습니다..."),
}
match role {
// 다시 한번 스코프 지정이 없음에 주목하세요.
Student => println!("학생들이 지식을 습득하고 있습니다!"),
Teacher => println!("교사들이 지식을 전파하고 있습니다!"),
}
}