< 返回版块

Nerd 发表于 2022-04-22 21:24

Tags:有没有什么办法同时匹配枚举类型和其中的值

现在有这样的一段嵌套match:

match buf.chars().nth(0) {
    Some(c: char) => match c{
    'a'..='z' | 'A'..='Z' | '0'..='9' | '_' => todo!(),
    _ => todo!(),
    }
    None => todo!()
}
```rust

有没有办法消除掉里面的那个match, 和外面那个match合并成3个arms呢?

评论区

写评论
Bai-Jinlin 2022-04-22 21:54
let c = Some('a');
match c {
    Some(c @ ('a'..='z' | 'A'..='Z' | '0'..='9' | '_')) => {
        println!("{c}!")
    }
    Some(c) => {
        println!("{c}")
    }
    _ => {}
}
1 共 1 条评论, 1 页