[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
의 각 필드를 패턴 매칭을 통해 처리하고 있습니다. 이를 통해 각각의 상황에 따라 다른 연산을 수행할 수 있습니다.
패턴 매칭은 러스트의 강력한 기능 중 하나이며, 코드를 더욱 보기 좋고 유지보수하기 쉽게 만들어 줍니다.
참고 자료
- 러스트 공식 문서: https://doc.rust-lang.org/book/ch18-00-patterns.html