use는 현재 스코프에 경로의 짧은 이름을 묶는다

아이템을 복사하거나 옮기는 문법이 아니다. 어느 스코프에서 어떤 이름을 보이게 할지 정하고, 반복되는 경로를 읽기 좋은 형태로 접는다.

1

먼저 스코프를 고른다

use crate::front_of_house::hosting;

이 선언이 있는 스코프에서만 hosting을 쓴다. 자식 모듈은 별도 스코프이므로 자동으로 이어받지 않는다.

2

공통 경로를 접는다

use std::io::{self, Write};

중괄호는 같은 앞부분을 한 번만 쓴다. self는 부모 경로인 std::io 자체도 함께 가져온다는 뜻이다.

3

글롭의 경계를 세운다

use std::collections::*;

모든 공개 이름을 들여오면 출처와 충돌을 예측하기 어렵다. 테스트 모듈이나 프렐루드처럼 의도가 분명한 범위에 제한한다.

핵심 use는 경로의 가시성 규칙을 우회하지 않는다. 짧게 쓰는 것보다 이름의 출처와 적용 범위가 코드에서 드러나는지가 우선이다.