[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에서 제네릭 에너메이션을 정의하고 사용하는 방법에 대해 알아보았습니다.
참고문헌: