기호는 문맥에 따라 값, 참조, 패턴, 매크로를 가리킨다

&, *, ?, ::, => 같은 기호는 위치에 따라 의미가 달라지므로 문법 역할을 먼저 분류하면 헷갈림이 줄어듭니다.

01기호 발견

토큰 하나만 떼어 해석하지 않습니다.

02문법 위치 확인

식·타입·패턴·항목 중 자리를 정합니다.

03주변 타입 확인

피연산자와 소유권 관계를 함께 봅니다.

04규칙 대조

문서와 컴파일러 진단으로 의미를 확정합니다.

표현식 위치

산술, 비교, 논리 연산은 값을 계산하고 결과 타입을 만듭니다.

참조

빌림과 역참조

&, &mut, *는 소유권 이동 없이 값 접근 방식을 바꿉니다.

패턴

match와 let

_, .., |, @는 값을 분해하거나 조건을 묶는 데 쓰입니다.

경로

모듈과 매크로

::, !, =>는 이름 해석과 매크로 규칙에서 자주 만납니다.

막힐 때 먼저 볼 질문

위치

타입 자리인지, 값 자리인지, 패턴 자리인지 먼저 구분합니다.

소유권

이 기호가 이동, 빌림, 복사 중 어느 동작을 유발하는지 봅니다.

추론

컴파일러가 어떤 타입을 기대하는지 에러 메시지와 함께 확인합니다.

작은 실험

기호가 헷갈리면 가장 작은 예제로 줄이고 rustc 에러가 말하는 기대 타입과 실제 타입을 비교합니다.