토큰 하나만 떼어 해석하지 않습니다.
기호는 문맥에 따라 값, 참조, 패턴, 매크로를 가리킨다
&, *, ?,
::, => 같은 기호는 위치에 따라 의미가
달라지므로 문법 역할을 먼저 분류하면 헷갈림이 줄어듭니다.
식·타입·패턴·항목 중 자리를 정합니다.
피연산자와 소유권 관계를 함께 봅니다.
문서와 컴파일러 진단으로 의미를 확정합니다.
표현식 위치
산술, 비교, 논리 연산은 값을 계산하고 결과 타입을 만듭니다.
빌림과 역참조
&, &mut, *는 소유권
이동 없이 값 접근 방식을 바꿉니다.
match와 let
_, .., |, @는
값을 분해하거나 조건을 묶는 데 쓰입니다.
모듈과 매크로
::, !, =>는 이름 해석과
매크로 규칙에서 자주 만납니다.
막힐 때 먼저 볼 질문
위치
타입 자리인지, 값 자리인지, 패턴 자리인지 먼저 구분합니다.
소유권
이 기호가 이동, 빌림, 복사 중 어느 동작을 유발하는지 봅니다.
추론
컴파일러가 어떤 타입을 기대하는지 에러 메시지와 함께 확인합니다.
기호가 헷갈리면 가장 작은 예제로 줄이고 rustc 에러가
말하는 기대 타입과 실제 타입을 비교합니다.