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#에도 도입이 되었음 하는 바램입니다.