如何使用Rust我将匹配的值分配为结果?

Bri*_* Oh 4 rust

我在Rust中使用了"匹配",我已经搜索了这个问题的解决方案,因为我确信必须有一个解决方案.在以下示例中,在生成的随机数不为零的情况下,我希望将生成的随机数分配给变量i_bal.换句话说,我不是根据我的例子分配"23456",而是想在匹配中分配正在测试的实际随机数.我知道可能有更好的方法来解决这个问题,但是,我想知道使用这种方法的解决方案.

示例:

let i_bal: i64 = match std::rand::task_rng().gen() {
    0 => 1234,
    _  => 23456
};
Run Code Online (Sandbox Code Playgroud)

Mat*_*igh 8

您可以使用变量模式代替通配符模式.它们都匹配所有内容,但是使用变量模式,匹配的值绑定到名称:

let i_bal: i64 = match std::rand::task_rng().gen() {
    0 => 1234,
    x => x
};
Run Code Online (Sandbox Code Playgroud)

为什么在某些情况下,您希望使用通配符模式,以便明确表示您不需要该值,因此您不必使用不必要的变量名称污染范围

例如,如果你有一个(高,低,开,关)元组,并且只想要变量的高和低,你可以这样做:

let (high, low, _, _) = tickerData
Run Code Online (Sandbox Code Playgroud)