[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를 확인해보세요.