3

有没有更简洁的方法来写这个?

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

Option<u8>如果从上面的代码中不清楚,那么peek() 返回一个。

4

2 回答 2

3

由于 Option派生了 Eq 的实现,您可以简单地编写:

let neg = Some(b'-') == self.peek();
于 2020-07-03T23:43:53.950 回答
3

由于 ,另一个答案对于特定示例是准确的Eq,但我会在一般情况下回答。

Rust 现在有一个matches!用于这个用例的宏,所以你也可以写

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

如果您不想或无法使用Eq.

于 2020-07-04T01:46:22.123 回答