Rust 타입 추론 고급 예제

Beginner

This tutorial is from open-source community. Access the source code

소개

이 실습에서는 Rust 프로그래밍 언어를 활용한 고급 예제를 통해 변수의 사용 및 값 할당에 기반하여 변수의 타입을 추론하는 타입 추론 엔진의 기능을 강조합니다.

참고: 실습에서 파일 이름을 지정하지 않으면 원하는 파일 이름을 사용할 수 있습니다. 예를 들어 main.rs 파일을 사용하고 rustc main.rs && ./main 명령어로 컴파일 및 실행할 수 있습니다.

추론

타입 추론 엔진은 매우 똑똑합니다. 초기화 시 값 표현식의 타입만 확인하는 것을 넘어, 이후 변수가 사용되는 방식을 통해 타입을 추론합니다. 다음은 타입 추론의 고급 예제입니다.

fn main() {
    // 주석 때문에 컴파일러는 `elem` 의 타입이 u8 임을 알 수 있습니다.
    let elem = 5u8;

    // 비어있는 벡터 (크기가 늘어나는 배열) 를 만듭니다.
    let mut vec = Vec::new();
    // 이 시점에서 컴파일러는 `vec` 의 정확한 타입을 모릅니다. 단, 무언가의 벡터 (`Vec<_>`) 임을 알고 있습니다.

    // 벡터에 `elem` 을 삽입합니다.
    vec.push(elem);
    // 아하! 이제 컴파일러는 `vec` 이 `u8` 의 벡터 (`Vec<u8>`) 임을 알게 됩니다.
    // TODO ^ `vec.push(elem)` 라인을 주석 처리해 보세요.

    println!("{:?}", vec);
}

변수의 타입 주석이 필요하지 않았습니다. 컴파일러와 프로그래머 모두 만족합니다!

요약

축하합니다! 추론 실습을 완료했습니다. LabEx 에서 더 많은 실습을 통해 기술을 향상시킬 수 있습니다.