더북(TheBook)

코드 4-18 매개변수에 값이 들어 있는지 패턴 검사하기

...
async fn get_questions(
    params: HashMap<String, String>,
    store: Store
) -> Result<impl warp::Reply, warp::Rejection> {

    match params.get("start") {
        Some(start) => println!("{}", start),
        None => println!("No start value"),
    }
    println!("{:?}", params);

    ...
}
...

패턴 검사의 결과가 None이라면 콘솔에 No start value를 출력한다. 잘 살펴보면 None 관련 부분을 완전히 없애고, 해시 맵에 start라는 매개변수가 있을 때만 무언가를 하면 된다. 러스트에는 이런 경우 다음처럼 match 표현식의 가지(arm)로 더 짧은 형식을 쓸 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.