Rust 符号@在表达式中的含义是什么
我是Rust方面的新手,在学习标准库时,我在一个匹配示例中找到了Somex@6..=10的表达式。x@6..=10是什么意思?这是一种模式匹配,特别是。在形式上Rust 符号@在表达式中的含义是什么,rust,expression,Rust,Expression,我是Rust方面的新手,在学习标准库时,我在一个匹配示例中找到了Somex@6..=10的表达式。x@6..=10是什么意思?这是一种模式匹配,特别是。在形式上 let y = Some(3); if let Some(x @ 6..=10) = y { // ... } 。。。变量y需要是一个。。。如果内部值在6到10(含6到10)范围内,则内部值将指定给x。在上面的示例中,不会执行if块,因为当y将结构分解为某个…,内部值不适合模式,因此x不会绑定。这是模式匹配的一种形式,特别是。
let y = Some(3);
if let Some(x @ 6..=10) = y {
// ...
}
。。。变量y需要是一个。。。如果内部值在6到10(含6到10)范围内,则内部值将指定给x。在上面的示例中,不会执行if块,因为当y将结构分解为某个…,内部值不适合模式,因此x不会绑定。这是模式匹配的一种形式,特别是。在形式上
let y = Some(3);
if let Some(x @ 6..=10) = y {
// ...
}
。。。变量y需要是一个。。。如果内部值在6到10(含6到10)范围内,则内部值将指定给x。在上面的示例中,将不执行if块,因为当y将结构分解为某个…,内部值不符合模式,因此x不绑定。语法low..=high允许您匹配从低到高(含)范围内的所有数字。模式匹配表达式中的@允许您将变量绑定到匹配的值。下面是一个示例来说明它们的用途:
fn log_nummaybe_num:选项{
匹配可能的数量{
None=>println!没有数字,
Somex@0..=5=>println!得到的数字{}在0-5之间,x,
Somey@6..=10=>println!得到了介于6-10之间的{},y,
Somez=>println!得到的数字{}大于10,z,
}
}
fn干线{
对数单位;
对数numSome3;
对数numSome7;
对数约15;
}
语法low..=high允许您匹配从低到高(含)范围内的所有数字。模式匹配表达式中的@允许您将变量绑定到匹配的值。下面是一个示例来说明它们的用途:
fn log_nummaybe_num:选项{
匹配可能的数量{
None=>println!没有数字,
Somex@0..=5=>println!得到的数字{}在0-5之间,x,
Somey@6..=10=>println!得到了介于6-10之间的{},y,
Somez=>println!得到的数字{}大于10,z,
}
}
fn干线{
对数单位;
对数numSome3;
对数numSome7;
对数约15;
}
@pattern是进行模式匹配的一种方法。通常,匹配分支为匹配值的部分创建变量。但是something@pattern创建了一个变量something,并将整个值移动或复制到其中。something@pattern是进行模式匹配的一种方法。通常,匹配分支为匹配值的部分创建变量。但是something@pattern创建了一个变量something,并将整个值移动或复制到其中。为什么不先?为什么不先?