유닛 (Unit) 타입

이 포스트는 Rust를 처음 공부하면서 정리한 내용입니다. 해당 포스트는 개인적으로 기억하기 위한 메모 성격에 가깝습니다. “러스트 프로그래밍 공식 가이드 (2018, 제이펍)” 서적을 참고하였으며, 러스트 공식 사이트 에서 책과 동일한 내용을 찾을 수 있습니다. 따라서 더 자세한 내용을 찾으시면 위의 링크를 참고하시면 좋습니다.

Unit 타입 이란?

이전 포스트에서 match 에서 _ 자리지정자는 명시되지 않은 경우의 수를 나타냈습니다. 이때 사용한 () 은 유닛값으로, 이에 해당하는 경우는 아무런 일도 일어나지 않습니다.

let some_u8_value: u8 = 0u8;
match some_u8_value {
    1 => println!("one"),
    3 => println!("three"),
    5 => println!("five"),
    7 => println!("seven"),
    _ => (),
}

유닛값이 무엇인지 궁금하여 공식 문서를 참고하여 정리해보겠습니다.

유닛(Unit)이란 Rust에서 지원하는 기본 타입(Primitive Type)입니다. () 타입은 정확히 () 라는 하나의 값을 가지게 되고, 반환할 수 있는 다른 의미 있는 값이 없을 때 사용됩니다.

함수 리턴 타입

우선 함수에서 유닛 타입은 암묵적인 리턴 타입입니다. a -> ...이 없는 함수는 암묵적으로 반환 타입은 () 타입이 됩니다. 즉, 아래의 두 함수는 동일합니다.

// Equivalent return type.
fn long() -> () {}
fn short() {}

또는,

fn returns_i64() -> i64 {
    1i64
}
fn returns_unit() {
    1i64;
}

let is_i64 = {
    returns_i64()
};
let is_unit = {
    returns_i64();
};

와 동일합니다. 표현식과 관련된 리턴 값에 대한 내용은 [Rust]함수에서 확인할 수 있습니다.

태그:

카테고리:

업데이트: