3.2.1 use
use 선언은 범위 지정이 없이 사용할 수 있다.
// An attribute to hide warnings for unused code.
#![allow(dead_code)]
enum Status {
Rich,
Poor,
}
enum Work {
Civilian,
Soldier,
}
fn main() {
// `use`를 명시적으로 이름마다 사용하기에 범위 지정없이 사용 가능하다.
use Status::{Poor, Rich};
// `Work` 내부의 각 이름마다 자동으로 `use` 된다.
use 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!"),
}
}