r이 쓰이는 구간
println!처럼 참조자를 실제로 사용하는 마지막 지점까지 유효해야 합니다.
x가 살아 있는 구간
블록이 끝나면 값이 버려지므로, 그 이후의 참조는 허용될 수 없습니다.
대상이 더 길면 통과
참조 대상의 라이프타임이 참조자의 사용 구간을 덮을 때만 코드가 컴파일됩니다.
대여 검사기는 참조자 사용 구간과 참조 대상의 유효 구간을 비교해 댕글링 참조 가능성을 컴파일 타임에 막습니다.
r이 쓰이는 구간println!처럼 참조자를 실제로 사용하는 마지막 지점까지 유효해야 합니다.
x가 살아 있는 구간블록이 끝나면 값이 버려지므로, 그 이후의 참조는 허용될 수 없습니다.
참조 대상의 라이프타임이 참조자의 사용 구간을 덮을 때만 코드가 컴파일됩니다.
'b가 안쪽 블록에서 끝나는데 'a 참조자가 바깥에서 쓰이면 E0597이 발생합니다.
값을 바깥 스코프에 두면 데이터가 참조자보다 오래 살아 참조가 안전해집니다.
라이프타임 표기는 참조를 오래 살게 만드는 문법이 아니라, 이미 존재하는 수명 관계를 컴파일러에게 설명하는 방법입니다.