有没有一种简洁的方法来检查选项是否为“无”或其某些内容是否为空?

Fre*_*ors -7 rust option-type

还有比下面的代码更简洁的吗?

let player_list: Option<Vec<Player>>;

// more code here

if player_list.is_none() || player_list.as_ref().unwrap().is_empty() {
  // do something here if player_list is none or empty
}
Run Code Online (Sandbox Code Playgroud)

我想避免这一||部分。

Cae*_*sar 6

我想你可能不想player_list被消耗。在这种情况下,请使用:

player_list.as_ref().map_or(true, Vec::is_empty)
Run Code Online (Sandbox Code Playgroud)

如果可以食用player_list

player_list.unwrap_or_default().is_empty()
Run Code Online (Sandbox Code Playgroud)

  • 或者:`player_list.as_deref().unwrap_or_default().is_empty()`,不消耗。 (2认同)