0Pricing
Learn Rust Coding · 강의

if let과 while let

간결한 패턴 매칭

if let과 while let은(는) CoddyKit의 무료 Learn Rust Coding 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn Rust Coding 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn Rust Coding 강의에는 총 4개의 강의가 포함되어 있습니다.

간결한 매칭

때로는 하나의 패턴만 확인하면 됩니다. if let과 while let은 전체 match 없이 간결하게 매칭할 수 있게 해 줍니다.

if let 형식

if let은 값이 패턴과 일치할 때만 블록을 실행하고, 캡처한 데이터를 바인딩합니다.

fn main() {
    let maybe = Some(10);
    if let Some(n) = maybe {
        println!("value is {n}");
    }
}

if let과 match 비교

if let은 흥미로운 분기 하나와 _ => () 대체 처리를 포함한 match의 간결한 표현입니다. 다른 경우를 처리할 필요가 없을 때 사용하세요.

fn main() {
    let config: Option<i32> = None;
    // match equivalent would have an empty _ arm
    if let Some(v) = config {
        println!("configured: {v}");
    }
    println!("done");
}

else 추가하기

매칭되지 않는 경우를 처리하려면 else를 연결하세요.

fn main() {
    let result: Result<i32, String> = Err("boom".to_string());
    if let Ok(v) = result {
        println!("ok: {v}");
    } else {
        println!("failed");
    }
}

let else

let ... else는 패턴이 일치하면 바인딩하고, 그렇지 않으면 return과 같은 분기 블록을 실행합니다. 조기 종료에 유용합니다.

fn parse(s: &str) -> i32 {
    let Ok(n) = s.parse::<i32>() else {
        println!("not a number");
        return 0;
    };
    n * 2
}

fn main() {
    println!("{}", parse("21"));
    println!("{}", parse("oops"));
}

while let 형식

while let은 값이 패턴과 일치하는 동안 반복합니다. 스택과 같은 자료구조를 비우는 데 특히 적합합니다.

fn main() {
    let mut stack = vec![1, 2, 3];
    while let Some(top) = stack.pop() {
        println!("popped {top}");
    }
}

반복자 순회하기

while let은 next를 반복해서 호출하며 순회할 수 있고, None을 반환하면 중지합니다.

fn main() {
    let mut iter = [10, 20, 30].into_iter();
    while let Some(x) = iter.next() {
        println!("{x}");
    }
}

if let에서 가드 사용하기

&& 조건(Rust 2024)을 추가하거나 내부에 if를 중첩하여 가드를 결합할 수 있습니다.

fn main() {
    let value = Some(8);
    if let Some(n) = value {
        if n > 5 {
            println!("big: {n}");
        }
    }
}

무엇을 언제 사용할까요

다음 지침을 참고하세요.

  • if let — 하나의 패턴을 처리하고 나머지는 무시
  • let else — 바인딩하거나 조기에 종료
  • while let — 패턴이 계속 일치하는 동안 반복
  • match — 여러 경우를 처리해야 할 때 사용

가독성의 절충

이러한 형식은 상용구 코드를 줄여 주지만 경우의 수를 숨길 수 있습니다. 여러 패턴을 처리하게 된다면 명확성을 위해 전체 match로 돌아가세요.

if let 중첩하기

if let을 중첩하면 선택적 값을 연결하고 한 번에 한 단계씩 포장을 풀 수 있습니다.

fn main() {
    let outer: Option<Option<i32>> = Some(Some(99));
    if let Some(inner) = outer {
        if let Some(value) = inner {
            println!("value is {value}");
        }
    }
}

빠른 확인

값이 계속 패턴과 일치하는 동안 반복 본문을 실행하는 구성 요소는 무엇인가요?

복습

간결한 매칭을 배웠습니다.

  • if let은 단일 패턴을 처리하며 선택적으로 else를 사용할 수 있습니다.
  • let else는 바인딩하거나 조기에 분기합니다.
  • while let은 패턴이 일치하는 동안 반복합니다.
  • 여러 경우를 처리해야 하면 match로 전환합니다.

자주 묻는 질문

“if let과 while let” 강의는 무료인가요?

네 — “if let과 while let” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn Rust Coding 강의 전체를 잠금 해제할 수 있습니다. Learn Rust Coding 강의에는 총 4개의 강의가 포함되어 있습니다.

“if let과 while let”에서 뭘 배우나요?

간결한 패턴 매칭 브라우저에서 직접 실행하는 실습 코드로 Learn Rust Coding을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn Rust Coding을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn Rust Coding은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“if let과 while let” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn Rust Coding 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn Rust Coding 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. match 심층 탐구
  2. if let과 while let
  3. @를 사용한 바인딩
  4. 구조 분해
← Learn Rust Coding(으)로 돌아가기