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
有点特殊,因为不能使用它绑定值,只能忽略一个值。但你是对的,匹配并不是什么特别的事情。我是说模式。提问者似乎认为,
本身意味着“其他”,因此为什么问题首先存在。