首页 > 解决方案 > rust 语法匹配绑定 - 如何将“Some”与条件和 None 匹配在一起

问题描述

我正在尝试像这样匹配(或者也会考虑使用 let 绑定,因为另一种情况对我来说并不有趣)

let cl : Option<u64> = res.content_length();
match cl {
  Some(x) if x == 0 | None => { // want to take care of x == 0 or None cases
    return std::result::Result::Ok(RegisterResponse{..Default::default()})
  }
  _ => {} // don't care
}

我收到此编译错误

 Some(x) if x == 0 | None => {
    |                                       ^ no implementation for `{integer} | std::option::Option<_>`

标签: rust

解决方案


你在:之后失踪cllet cl Option<u64> = res.content_length();

另外,你需要','之前_ => {}(之后}


推荐阅读