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#에도 λ„μž…μ΄ λ˜μ—ˆμŒ ν•˜λŠ” λ°”λž¨μž…λ‹ˆλ‹€.

μ’‹μ•„μš” 4