RUST · LIFETIME
longest 함수의 라이프타임 계약
longest의 라이프타임 명시는 두 입력 참조와 반환 참조가 같은 유효 범위 안에서만 안전하다는 계약을 함수 시그니처에 적는 것입니다.
시그니처 계약
'a
x: &'a str
첫 번째 입력 참조가 계약에 참여합니다.
y: &'a str
두 번째 입력 참조도 같은 계약으로 묶입니다.
비교 로직
함수 본문은 둘 중 하나의 참조를 선택합니다.
-> &'a str
반환 참조는 두 입력이 겹치는 범위 안에서만 유효합니다.
x 수명
→
겹치는 구간
→
y 수명
→
반환 가능
오해 방지
borrow
수명 연장 아님
라이프타임 명시는 값이 더 오래 살게 만들지 않습니다.
관계 설명
여러 참조가 어떤 관계인지 컴파일러에게 알려줍니다.
본문보다 시그니처
계약은 함수 외부 호출자도 볼 수 있는 타입 정보입니다.
짧은 입력 기준
둘 중 하나가 먼저 끝나면 반환 참조도 그 이후에는 쓸 수 없습니다.