4

我在 Rust 中使用了一点“匹配”,并且我一直在寻找解决这个问题的方法,因为我确信一定有解决方案。在下面的示例中,在生成的随机数不为零的情况下,我希望将生成的随机数分配给变量 i_bal。换句话说,我不想按照我的示例分配“23456”,而是要分配匹配中正在测试的实际随机数。我知道可能有更好的方法来解决这个问题,但是,我想知道使用这种方法的解决方案。

例子 :

let i_bal: i64 = match std::rand::task_rng().gen() {
    0 => 1234,
    _  => 23456
};
4

1 回答 1

8

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

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

为什么在某些情况下你想使用通配符模式是为了让你清楚你不需要这个值,这样你就不必用不必要的变量名污染范围

例如,如果您有一个 (high, low, open, close) 的元组,并且只想要其中的变量 high 和 low,您可以这样做:

let (high, low, _, _) = tickerData
于 2013-11-01T14:35:11.013 回答