5.3 Alias 별칭
type
문은 이미 존재하는 타입에 새로운 이름을 사용할 수 있다. 타입들은 반드시 CamelCase
식의 이름을 지어야지, 아니면 컴파일러는 경고를 일으킨다. 예외가 있다면 기본 타입들: usize
, f32
, 등.
// `NanoSecond`는 `u64`의 새 이름. type NanoSecond = u64; type Inch = u64; // 경고를 무시하고자 사용한 속성 #[allow(non_camel_case_types)] type u64_t = u64; // TODO ^ 속성을 지워보세요. fn main() { // `NanoSecond` = `Inch` = `u64_t` = `u64`. let nanoseconds: NanoSecond = 5 as u64_t; let inches: Inch = 2 as u64_t; // 주의할 점은, 타입 별칭은 어떤 추가 타입 안전성을 제공하지 *않는데* // 이는 별칭이 새로운 타입들이 *아니기* 때문이다. println!("{} nanoseconds + {} inches = {} unit?", nanoseconds, inches, nanoseconds + inches); }
별칭을 사용하는 주된 이유는 타이핑을 줄이기 위해서; 예를 들면 IoResult<T>
타입은 Result<T, IoError>
타입의 별칭이다.