[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 공식 도큐먼트를 참고하세요.