Compiler Routine

오류 메시지를 안전한 코드로 바꾸는 읽기 순서

러스트의 컴파일 오류는 실패 통지가 아니라 값의 주인, 참조 범위, 수정 권한을 다시 점검하라는 신호로 읽으면 학습 속도가 빨라집니다.

1 위치 확인 오류 줄과 이전 사용 지점을 함께 봅니다.
2 규칙 이름 move, borrow, lifetime 중 어떤 규칙인지 표시합니다.
3 제안 비교 clone, 참조, 범위 축소 중 의도와 맞는 수정을 고릅니다.
4 다시 실행 새 오류가 나오면 더 좁은 규칙으로 같은 순서를 반복합니다.

메시지에서 질문으로 바꾸기

ownership first
borrow of moved value

값을 이미 다른 변수나 함수 호출로 넘겼는지 확인합니다.

소유권 이동
cannot borrow as mutable

동시에 읽기 참조와 쓰기 참조가 섞였는지 살핍니다.

&T / &mut T
does not live long enough

참조가 가리키는 값보다 오래 남는 흐름인지 봅니다.

scope / lifetime
학습 기준

오류를 없애는 것에서 멈추지 말고, 왜 그 수정이 안전한지 한 문장으로 남기면 다음 장의 소유권 규칙이 훨씬 덜 낯설어집니다.