라이프타임은 참조가 원본보다 오래 남지 못하게 막는다
대여 검사기는 owner scope와 borrow scope가 겹치는 구간을 비교해, 해제된 값을 가리키는 참조 반환을 거부한다.
String, struct, local value처럼 메모리를 소유한다.
&T 또는 &mut T가 마지막으로 쓰이는 지점까지다.
borrow가 owner 밖으로 나가면 dangling 가능성이 생긴다.
lifetime 표기는 수명을 늘리지 않고 입력과 출력의 관계를 고정한다.
| 구분 | 의미 | 판단 |
|---|---|---|
| 댕글링 방지 | 해제된 값 참조 금지 | 반환 참조는 입력 중 어떤 값과 연결되는지 설명해야 한다. |
| 생략 규칙 | 단순 패턴은 추론 | 입력이 하나면 출력 참조의 lifetime을 추론할 수 있다. |
| 명시 표기 | 'a 관계 | 여러 입력 참조가 얽힐 때 컴파일러에게 관계를 알려준다. |
핵심 라이프타임 표기는 참조를 오래 살리는 문법이 아니라 원본과 참조의 생존 관계를 컴파일러가 검증하게 하는 계약이다.