RUST · LIFETIME

longest 함수의 라이프타임 계약

longest의 라이프타임 명시는 두 입력 참조와 반환 참조가 같은 유효 범위 안에서만 안전하다는 계약을 함수 시그니처에 적는 것입니다.

시그니처 계약

'a
x: &'a str첫 번째 입력 참조가 계약에 참여합니다.
y: &'a str두 번째 입력 참조도 같은 계약으로 묶입니다.
비교 로직함수 본문은 둘 중 하나의 참조를 선택합니다.
-> &'a str반환 참조는 두 입력이 겹치는 범위 안에서만 유효합니다.
x 수명겹치는 구간y 수명반환 가능

오해 방지

borrow
수명 연장 아님라이프타임 명시는 값이 더 오래 살게 만들지 않습니다.
관계 설명여러 참조가 어떤 관계인지 컴파일러에게 알려줍니다.
본문보다 시그니처계약은 함수 외부 호출자도 볼 수 있는 타입 정보입니다.
짧은 입력 기준둘 중 하나가 먼저 끝나면 반환 참조도 그 이후에는 쓸 수 없습니다.