使用 use

使用 use 声明的话,就可以不写出名称的完整路径了:

  1. // 该属性用于隐藏对未使用代码的警告。
  2. #![allow(dead_code)]
  3. enum Status {
  4. Rich,
  5. Poor,
  6. }
  7. enum Work {
  8. Civilian,
  9. Soldier,
  10. }
  11. fn main() {
  12. // 显式地 `use` 各个名称使他们直接可用,而不需要指定它们来自 `Status`。
  13. use Status::{Poor, Rich};
  14. // 自动地 `use` `Work` 内部的各个名称。
  15. use Work::*;
  16. // `Poor` 等价于 `Status::Poor`。
  17. let status = Poor;
  18. // `Civilian` 等价于 `Work::Civilian`。
  19. let work = Civilian;
  20. match status {
  21. // 注意这里没有用完整路径,因为上面显式地使用了 `use`。
  22. Rich => println!("The rich have lots of money!"),
  23. Poor => println!("The poor have no money..."),
  24. }
  25. match work {
  26. // 再次注意到没有用完整路径。
  27. Civilian => println!("Civilians work!"),
  28. Soldier => println!("Soldiers fight!"),
  29. }
  30. }

参见:

matchuse