[rust] 제네릭 에너메이션

Rust에서는 제네릭을 사용하여 함수나 구조체를 생성하는 것이 일반적입니다. 이 기능을 사용하여 동일한 기능을 다양한 데이터 유형에 대해 작동하도록 만들 수 있습니다. 이제는 이러한 제네릭을 사용하여 에너메이션(enumeration)을 정의하는 방법을 살펴보겠습니다.

에너메이션(enum)이란?

에너메이션은 다양한 유형의 값 중에서 하나를 선택하는 것을 나타냅니다. Rust에서는 enum 키워드를 사용하여 에너메이션을 정의할 수 있습니다.

일반적인 에너메이션 예시:

enum Fruit {
    Apple,
    Banana,
    Orange,
}

제네릭 에너메이션 정의하기

enum Option<T> {
    Some(T),
    None,
}

Option은 제네릭 에너메이션으로, 하나의 값이 존재하거나 아예 존재하지 않는 상황을 나타냅니다. 이때 T는 어떤 유형의 값이든 될 수 있는 형식 매개변수입니다.

제네릭 에너메이션을 사용하면 다양한 유형의 값에 대해 일반화된 에너메이션을 정의할 수 있습니다.

제네릭 에너메이션 사용하기

제네릭 에너메이션을 사용하는 방법:

fn get_favorite_fruit<T>(favorite: T) -> Option<T> {
    match favorite {
        "apple" => Option::Some(favorite),
        _ => Option::None,
    }
}

위의 예시에서 favorite 매개변수의 유형은 제네릭으로 지정되어 있으며, Option을 반환하고 있습니다.

이제 사용자는 get_favorite_fruit 함수를 호출하면서 어떤 유형의 값이든 인자로 전달할 수 있습니다.

결론

Rust의 제네릭은 다양한 유형에 대해 일반화된 코드를 작성하는데 유용합니다. 제네릭 에너메이션은 이와 같은 상황에서 유용하게 사용될 수 있습니다.

이상으로 Rust에서 제네릭 에너메이션을 정의하고 사용하는 방법에 대해 알아보았습니다.

참고문헌: