왼쪽 문맥
기호 앞에 타입, 값, 모듈, 패턴 중 무엇이 오는지 먼저 본다.
같은 기호도 위치에 따라 의미가 달라진다Rust 코드를 읽을 때 ::, &, *, ?, =>, .. 같은 기호를 따로 외우면 금방 흐려진다. 각 기호가 이름 공간, borrowing, deref, 오류 전파, 패턴 분기, 범위 생략 중 어떤 문맥에서 쓰였는지 함께 읽어야 실제 의미가 보인다.
기호 앞에 타입, 값, 모듈, 패턴 중 무엇이 오는지 먼저 본다.
같은 기호도 위치에 따라 의미가 달라진다::는 모듈 경로, 타입의 associated item, generic 인자 지정에 쓰인다.
Vec::<u8>::new처럼 둘이 함께 나온다&와 &mut는 빌림을 만들고, *는 deref 또는 raw pointer 문맥에서 값을 따라간다.
소유권 이동인지 빌림인지가 핵심이다?는 Result/Option 실패를 호출자에게 넘기고, =>는 match arm의 조건과 결과를 잇는다.
return처럼 보이지만 타입 변환이 함께 걸린다.., _, @, lifetime 표기를 구조 분해, 생략, 이름 붙이기, 참조 수명 문맥에서 읽는다.
패턴 안과 식 안의 ..는 쓰임이 다르다