我有以下方法:
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
?
答案 0 :(得分:3)
匹配臂可以包含if
表达式,因此您可以像这样简化代码:
fn get_error_id(err: CustomError) -> i64 {
match err {
CustomError::Unknown(ref r) if r.status == StatusCode::NOT_FOUND => 404,
_ => 0, // default_id
}
}