Thinking Different




열거형 (enum)

 

열거형은 간단히 나열하다 라는 뜻으로, 서로 연관된 상수 집합에 의해 정의되는 값 형식입니다. 열거형을 정의하려면 enum 키워드를 정의하고 열거형 멤버의 이름을 지정합니다.

 

 

기본 열거형 타입

// 일반적인 enum 타입

enum 과일
{
    사과,
    딸기,
    바나나,
    포도,
}

enum 성별
{
    남자,
    여자,
    중성,
}

 

 

 

열거형 예제

#[derive(Debug)]
enum 과일
{
    사과,
    딸기,
    바나나,
}

fn main() 
{
    let banana = 과일::바나나;
     
    println!("{:?}", banana);
}


// 예제 결과

바나나

 

 

값을 가질 수 있는 열거형 예제

#[derive(Debug)]
enum 색상
{
    빨강(i32, i32, i32),
    녹색(i32, i32, i32),
    파랑(i32, i32, i32),
}

fn main() 
{
    let red = 색상::빨강(255, 0, 0);
    
    println!("{:?}", red);
}


// 예제 결과

빨강(255, 0, 0)

 

 

match 를 활용한 값 비교

 

match를 활용하여 값을 찾을 수 있습니다. match 의 경우 switch ~ case 구문과 비슷하다고 할 수 있습니다.

#[derive(Debug)]
enum 과일
{
    사과,
    딸기,
    바나나,
}

fn main() 
{
    let banana = 과일::바나나;
    
    match banana
    {
        과일::사과 => println!("사과"),
        과일::딸기 => println!("딸기"),
        _ => println!("바나나"),
    }
}


// 예제 결과

바나나

 

 

 

if let을 사용한 간결한 흐름 제어

 

match 와는 다르게 if let을 활용하여 간결하게 흐름을 제어할 수 있습니다.

 

#[derive(Debug)]
enum 과일
{
    사과,
    딸기,
    바나나,
}

fn main() 
{
    let banana = 과일::바나나;
 
    if let 과일::바나나 = banana
    {
        println!("{:?}", banana);
    }
    else
    {
        println!("other..");
    }
}

 

'프로그래밍 언어 > Rust' 카테고리의 다른 글

[Rust] 13. 벡터(Vector) 컬렉션 (컨테이너)  (0) 2023.02.17
[Rust] 12. 모듈화 (mod)  (0) 2023.02.15
[Rust] 10. 구조체(Struct)  (0) 2023.02.10
[Rust] 9. 슬라이스  (0) 2023.02.08
[Rust] 8. 참조자 (&)  (0) 2023.02.05