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> 타입의 별칭이다.

See also:

Attributes

results matching ""

    No results matching ""