[rust] 러스트 코드에서 패턴 매칭 활용

러스트는 강력한 패턴 매칭 기능을 제공하여 코드를 간결하게 작성할 수 있습니다. 패턴 매칭은 값이나 구조체 등에 대한 다양한 상황을 처리할 때 유용하게 사용됩니다.

기본적인 예제

다음은 간단한 패턴 매칭의 예제입니다.

fn main() {
    let number = 5;

    match number {
        1 => println!("One"),
        2 | 3 => println!("Two or three"),
        4..=7 => println!("Four to seven"),
        _ => println!("Something else"),
    }
}

위 코드는 number 변수의 값을 기반으로 다양한 패턴 매칭을 수행합니다. 매칭되는 패턴에 따라 다른 동작을 수행할 수 있습니다. 이는 if-else 구문과 비교하여 더 간결하고 가독성이 좋습니다.

구조체와 패턴 매칭

러스트에서는 구조체와 패턴 매칭을 함께 사용하여 구조체의 필드를 효과적으로 처리할 수 있습니다.

struct Point {
    x: i32,
    y: i32,
}

fn main() {
    let p = Point { x: 0, y: 7 };

    match p {
        Point { x, y: 0 } => println!("On the x axis at {}", x),
        Point { x: 0, y } => println!("On the y axis at {}", y),
        Point { x, y } => println!("On neither axis at {}, {}", x, y),
    }
}

위 코드에서는 구조체 Point의 각 필드를 패턴 매칭을 통해 처리하고 있습니다. 이를 통해 각각의 상황에 따라 다른 연산을 수행할 수 있습니다.

패턴 매칭은 러스트의 강력한 기능 중 하나이며, 코드를 더욱 보기 좋고 유지보수하기 쉽게 만들어 줍니다.

참고 자료