더북(TheBook)

코드 1-8 빈 ID 검사하기

match id.is_empty() {
    false => Ok(QuestionId(id.to_string())),
    true => Err(Error::new(ErrorKind::InvalidInput, "No id provided")),
}

이 코드를 이해하지 못하더라도 걱정하지 않아도 된다. 곧 읽을 수 있게 될 것이다. match 블록이 있고, 컴파일러는 가능한 모든 용례(id가 비어 있든 아니든)를 처리한다. true =>로 시작하는 한 줄을 삭제하고 코드를 컴파일하면 다음과 같은 에러가 발생한다.

코드 1-9 일치하는 패턴이 없어 일어나는 컴파일 에러

error[E0004]: non-exhaustive patterns: `true` not covered
    --> src/main.rs:31:15
      |
31    | match id.is_empty() {
      |       ^^^^^^^^^^^^^ pattern `true` not covered
      |
      = help: ensure that all possible cases are being handled,
        possibly by adding wildcards or more match arms
      = note: the matched value is of type `bool`
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.