相关疑难解决方法(0)

如何在Rust中的变量中存储模式?

我在Rust中实现了一个解析器,而空白是我想在match模式中重用的常见模式.

此代码有效:

let ch = ' ';

match ch {
    ' ' | '\n' | '\t' | '\r' => println!("whitespace"),
     _ => println!("token"),
}
Run Code Online (Sandbox Code Playgroud)

如果我每次都需要继续指定空白模式,这将变得非常重复.我想定义一次并重用它.我想做的事情如下:

let whitespace = ' ' | '\n' | '\t' | '\r';

let ch = ' ';

match ch {
    whitespace => println!("whitespace"),
    _          => println!("token"),
}
Run Code Online (Sandbox Code Playgroud)

编译器不喜欢ws赋值.它将其解释|为二进制运算而不是交替运算.

模式可以以某种方式存储在变量中吗?有没有更好或更惯用的方法来做到这一点?

rust

8
推荐指数
1
解决办法
422
查看次数

标签 统计

rust ×1