Как реорганизовать оператор if внутри спичечной руки? - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть следующий метод:

fn get_error_id(err: CustomError) -> i64 {
    let default_id = 0;
    match err {
        CustomError::Unknown(response) => {
            if response.status == StatusCode::NOT_FOUND {
                404
            } else {
                default_id
            }
        }
        _ => default_id,
    }
}

Есть ли какой-либо способ его рефакторинга, чтобы встроить default_id?

1 Ответ

0 голосов
/ 20 февраля 2019

Стрелки могут содержать if выражений, поэтому вы можете упростить код следующим образом:

fn get_error_id(err: CustomError) -> i64 {
    match err {
        CustomError::Unknown(ref r) if r.status == StatusCode::NOT_FOUND => 404,
        _ => 0, // default_id
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...