Operator Map

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

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

표현식 위치

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

참조

빌림과 역참조

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

패턴

match와 let

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

경로

모듈과 매크로

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

막힐 때 먼저 볼 질문

위치

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

소유권

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

추론

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

작은 실험

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