Trait bounds

트레이트 바운드는 함수 시그니처의 약속을 좁힌다

같은 Summary 요구라도 매개변수가 하나인지, 두 인수가 같은 타입이어야 하는지, 바운드가 길어지는지에 따라 표현 형태가 달라진다.

notify 예제로 고르는 바운드 표기

compile-time promise

간단한 매개변수

&impl Summary

item 하나에서 summarize만 호출하면 가장 짧고 의도가 바로 보인다.

두 인수의 같은 타입

T: Summary

item1과 item2가 모두 Summary면서 구체 타입도 같아야 할 때 T를 공유한다.

여러 능력 요구

Summary + Display

summarize 호출과 중괄호 출력처럼 서로 다른 동작이 모두 필요할 때 더한다.

긴 제약 정리

where T: Display

T와 U에 바운드가 쌓이면 함수명, 매개변수, 반환 타입을 먼저 읽게 둔다.

단순 같은 T 복수 trait where
작성 기준

바운드는 함수 본문이 실제로 쓰는 능력만 요구해야 한다. 필요보다 넓은 조건을 붙이면 재사용 가능한 타입의 범위가 불필요하게 줄어든다.