Rust의 enum 소개

Rust 언어를 매주 공부를 하고 있는데요, Rust의 다양한 매력적인 기능중에 저는 enum이 참 마음에 듭니다.

pub enum Response<T, E> {
   Ok(T),
   Error(E)
}

Result<T, E>라는 열거형은 Ok(T)Error(E)라는 열거 유형을 가질 수 있는데요, 신박한것은 Ok일 때 T 형의 값을 가질 수 있고, Error일 때 E 형의 값을 가질 수 있다는 것입니다.

fn main() {
    let ok_value: Response<i32, &str> = Response::Ok(312);
    let err_value: Response<i32, &str> = Response::Error("Error!");

    print(&ok_value);
    print(&err_value);
}

fn print(value: &Response<i32, &str>) {
    match value {
        Response::Ok(v) => println!("{}", v),
        Response::Error(message) => println!("{}", message),
    }
}

이게 저에게는 상당히 매력적으로 보여서 C#에도 도입이 되었음 하는 바램입니다.

5개의 좋아요