Rust 在模式匹配的默认情况下,如何访问匹配的值?

Rust 在模式匹配的默认情况下,如何访问匹配的值?,rust,Rust,问题是关于默认情况 让我们考虑下面的代码: fn func(x: i64) { match x { 0 => println!("Zero"), 1 => println!("One"), _ => { //How to get the value here not via repeating the matched expression ? } }; } 假设您不想重复表达式,因为它比一个变量更复杂,您可以将其绑定到一个变

问题是关于默认情况

让我们考虑下面的代码:

fn func(x: i64) {
  match x {
    0 => println!("Zero"),
    1 => println!("One"),
    _ => {
      //How to get the value here not via repeating the matched expression ?
    }
  };
}

假设您不想重复表达式,因为它比一个变量更复杂,您可以将其绑定到一个变量:

fn func(x: i64) {
  match <some complex expression> {
    0 => println!("Zero"),
    1 => println!("One"),
    y => {
      // you can use y here
    }
  };
}
fn func(x:i64){
匹配{
0=>println!(“零”),
1=>println!(“一”),
y=>{
//你可以在这里用y
}
};
}
这也是一种默认情况,因为变量模式与所有内容都匹配,就像
\uu
一样


在您不想使用该值时非常有用。

为了澄清,
不是一种特殊模式。“匹配此处的任何其他值”是使用绑定模式完成的,而该绑定可以是“不关心实际值”,即
\uu
。还要注意的是
y
导致值移动到
y
,而
\u
意味着该值被忽略。如果要避免移动,可以使用模式
ref y
来创建对值的引用。@Sahsahae
\uu
有点特殊,因为不能使用它绑定值,只能忽略一个值。但你是对的,匹配并不是什么特别的事情。我是说模式。提问者似乎认为,
本身意味着“其他”,因此为什么问题首先存在。