match
러스트에서는 C switch
와 비슷한 개념으로 패턴 매치를 제공하는데 기본적인 테크닉을 익히면 아주 유용하게 사용할 수 있다.
간단히 설명하면 value 값을 매칭 시켜 분기를 태울 수 있다.
fn main() { let say = "hello"; // _ 의미는 else 개념으로 이해하면 된다. match say { "hello" => println!("he said {}", say), _ => println!("nothing") } }
match Destructure 에 대해 알아보자.
Destructuring
예제는 tuple 로만 표현했지만 struct, enum, array 으로도 destructure 가능하다.
fn main() { let tuple_match = (0, 1, 2); match tuple_match { (0, y, z) => println!("first is 0, then random y: {}, z :{}" ,y ,z), (1, ..) => println!("first is 1, then ..."), _ => println!("I dont care what first number is .."), } }