[rust] 제네릭 상/하한선
일반적으로 Rust에서 제네릭을 사용하면 범용성을 높일 수 있습니다. 그러나 때로는 특정 유형에 대해 특정 조건을 제한하고 싶을 수 있습니다. 이때 상한선(upper bound)과 하한선(lower bound)을 사용할 수 있습니다.
상한선(upper bound)
상한선은 특정 트레이트를 구현한 유형으로 제네릭 타입을 제한하는 데 사용됩니다. 예를 들어, 다음과 같이 T
타입에 Display
트레이트를 구현한 유형만을 허용할 수 있습니다.
fn print_display<T: Display>(t: T) {
println!("{}", t);
}
하한선(lower bound)
하한선은 특정 유형의 상위 유형으로 제네릭 타입을 제한하는 데 사용됩니다. 예를 들어, 다음과 같이 T
타입이 Debug
트레이트를 구현한 유형의 하위 유형만을 허용할 수 있습니다.
fn print_debug<T: Debug>(t: T) {
println!("{:?}", t);
}
제네릭 상/하한선을 사용하면 코드의 안정성을 보장하면서도 유연한 제네릭 구현이 가능합니다.
결론
Rust에서 제네릭 상/하한선은 유형에 제약을 두는데 유용한 도구입니다. 이를 통해 코드의 안정성을 높이고 의도치 않은 에러를 방지할 수 있습니다.
더 자세한 내용은 Rust 공식 도큐먼트를 참고하세요.