只是从“ if let”获得布尔结果?

时间:2020-07-03 23:36:58

标签: rust

有没有更简洁的方式写这个?

   let neg = if let Some(b'-') = self.peek() {
        true
   } else {
        false
   };

如果上面的代码不清楚peek()返回Option<u8>的地方。

2 个答案:

答案 0 :(得分:3)

由于选项derives an implementation for Eq,您可以简单地编写:

let neg = Some(b'-') == self.peek();

答案 1 :(得分:3)

由于which(dataset$var2 == "Away" & dataset$var3 == 1) ,其他答案对于特定示例是正确的,但我将在一般情况下回答。

在此用例中,Rust现在有一个matches!宏,因此您也可以编写

Eq

如果您不想或无法使用let neg = matches!(self.peek(), Some(b'-'));