我在Rust中使用了“匹配”,我已经搜索了这个问题的解决方案,因为我确信必须有一个解决方案。在以下示例中,在生成的随机数不为零的情况下,我希望将生成的随机数分配给变量i_bal。换句话说,我不是根据我的例子分配“23456”,而是想在匹配中分配正在测试的实际随机数。我知道可能有更好的解决方法,但是,我想知道使用这种方法的解决方案。
示例:
let i_bal: i64 = match std::rand::task_rng().gen() {
0 => 1234,
_ => 23456
};
答案 0 :(得分:8)
您可以使用变量模式代替通配符模式。它们都匹配所有内容,但是使用变量模式,匹配的值绑定到名称:
let i_bal: i64 = match std::rand::task_rng().gen() {
0 => 1234,
x => x
};
为什么在某些情况下你想要使用通配符模式是为了让你清楚地表明你不需要这个值,这样你就不必用不必要的变量名来污染范围
例如,如果你有一个(高,低,开,关)元组,并且只想要变量的高低,你可以这样做:
let (high, low, _, _) = tickerData