Rust 열거형(Enum)
2023. 3. 20. 23:49ㆍLanguage/Rust
Enum(열거형)이란 한 타입의 종류(variant)를 나열 할 때 흔히 사용됩니다.
Enum은 컴파일러에 프로그램에 관한 정보를 제공하므로 프로그램을 더 안정적으로 만들 수 있습니다.
간단한 예제를 살펴보겠습니다.
enum Move {
Up,
Down,
Left,
Right
}
fn which_move(go: Move){
match go {
Move::Up => println!("up"),
Move::Down => println!("down"),
Move::Left => println!("left"),
Move::Right => println!("right"),
}
}
enum Move안에 속한 값들을 열것값(variant)라고 부릅니다. 열것값들의 끝에는 콤마로 구분하고 마지막 열것값의 경우는 선택사항입니다.
열거형은 한번에 하나의 열것값만 될수 있고 match 키워드와 함께 사용하면 프로그램을 더 안정적으로 만들 수 있습니다.
Rust에서의 Enum Type
Rust에서의 enum은 타 언어와 다르게 보다 많은 기능을 사용 할 수 있습니다. Rust에서는 단순히 타입의 종류(variant)를 표시하는 것을 넘어 각 종류에 임의의 데이터를 지정 할 수 있습니다.
아래 예제를 살펴봅시다.
enum ErrorType{
Normal,
Critical
}
enum LogType {
Info(String),
Warning(String),
Error(ErrorType, String)
}
fn inspect(log:LogType)
{
match log{
LogType::Info(x) => println!("{}", x),
LogType::Warning(x) => println!("{}", x),
LogType::Error(error_type, x)=>
{
match error_type {
ErrorType::Normal => println!("normal error {}", x),
ErrorType::Critical => println!("critical error {}", x)
}
}
}
}
fn main() {
let test = LogType::Error(ErrorType::Critical, String::from("An error occurred!"));
inspect(test);
}
LogType을 보면 Info, Warning, Error 열것값에 String을 추가 할 수 있는 것을 볼 수 있습니다.
또한 Error의 경우 ErroType을 지정하여 보통의 Error인지 크리티컬 한 에러인지도 구분하여 사용 할 수 있습니다.
'Language > Rust' 카테고리의 다른 글
Rust Option의 메서드 알아보기 (0) | 2023.04.01 |
---|---|
Rust 소스 코드 문서화 (0) | 2023.03.21 |
Rust Struct(구조체) (1) | 2023.03.12 |
Rust 매크로 (0) | 2023.03.11 |
Rust gRPC 사용하기 (0) | 2023.03.06 |