Menu
Coddy logo textTech

'match' 표현식

Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 1번째.

match 표현식은 값을 다양한 패턴과 비교하고 어떤 패턴이 일치하는지에 따라 코드를 실행할 수 있게 해주는 Rust의 강력한 패턴 매칭 도구입니다. 여러 조건을 우아하게 처리할 수 있는 if 문의 더 발전된 버전이라고 생각하세요.

다음은 match 표현식의 기본 구문입니다:

match value {
    pattern1 => code_to_run,
    pattern2 => code_to_run,
    _ => default_code,
}

match 내부의 각 줄은 "arm"이라고 불립니다. =>는 패턴과 해당 패턴이 일치할 때 실행되는 코드를 구분합니다. 언더스코어 _는 무엇이든 일치하는 특별한 와일드카드 패턴입니다. 이는 다른 패턴과 일치하지 않는 모든 값에 대한 "catch-all"과 같습니다.

숫자를 확인하는 간단한 예제입니다:

let number = 2;

match number {
    1 => println!("One"),
    2 => println!("Two"),
    _ => println!("Other"),
}

Rust에서 match 표현식은 철저해야(exhaustive) 합니다. 즉, 가능한 모든 값을 처리해야 함을 의미합니다. 그래서 와일드카드 _가 매우 중요합니다. 이는 명시적으로 매칭되지 않은 모든 사례를 처리하도록 보장합니다.

challenge icon

챌린지

쉬움

num을 매개변수로 받아 숫자의 값에 따라 문자열 설명을 반환하는 describe_number 함수를 작성하세요.

match 표현식을 사용하여 각 숫자마다 서로 다른 설명을 반환하도록 하세요.

조건:

  • num0이면, "zero"를 반환합니다.
  • num1이면, "one"을 반환합니다.
  • num2이면, "two"를 반환합니다.
  • num3이면, "three"를 반환합니다.
  • 그 외의 다른 숫자는 "many"를 반환합니다.

매개변수:

  • num (i32): 설명할 숫자

반환값: 숫자에 대한 문자열 설명 (String)

치트 시트

match 표현식은 값을 여러 패턴과 비교하고, 어떤 패턴이 일치하는지에 따라 코드를 실행합니다:

match value {
    pattern1 => code_to_run,
    pattern2 => code_to_run,
    _ => default_code,
}

match 내부의 각 줄은 "arm"이라고 불립니다. =>는 패턴과 해당 패턴이 일치할 때 실행되는 코드를 구분합니다.

예시:

let number = 2;

match number {
    1 => println!("One"),
    2 => println!("Two"),
    _ => println!("Other"),
}

언더스코어 _는 다른 패턴에서 다루지 않는 모든 것을 매칭하는 와일드카드 패턴입니다. match 표현식은 반드시 exhaustive(철저)해야 합니다. 즉, 가능한 모든 값을 처리해야 합니다.

직접 해보기

fn describe_number(num: i32) -> String {
    // 여기에 코드를 작성하세요
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Logic & Flow의 모든 레슨