코드 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`