[rust] 제네릭 라이프타임
라이프타임(lifetime)은 Rust의 중요한 개념 중 하나입니다. 라이프타임은 참조의 유효 범위를 관리하며, 제네릭 라이프타임을 사용하여 함수나 구조체에서 여러 종류의 참조를 다룰 수 있습니다.
라이프타임 명시
라이프타임을 명시하기 위해 'a
와 같은 문법을 사용합니다. 함수나 구조체 정의에서 라이프타임을 명시하여 참조의 수명을 명확하게 지정할 수 있습니다.
struct MyStruct<'a> {
data: &'a str
}
fn my_function<'a>(val: &'a str) -> &'a str {
// ...
}
제네릭 라이프타임
제네릭 타입과 마찬가지로 라이프타임도 제네릭으로 만들 수 있습니다. 여러 개의 라이프타임을 가지는 함수나 구조체를 작성할 때 유용합니다.
fn longest_string<'a, 'b>(s1: &'a str, s2: &'b str) -> &'a str {
if s1.len() > s2.len() {
s1
} else {
s2
}
}
이제 라이프타임을 사용하여 여러 종류의 참조를 다루는 Rust 코드를 작성할 수 있습니다. 라이프타임에 대해 더 알아보려면 Rust Book를 확인해보세요.