Rust 符号@在表达式中的含义是什么

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不会绑定。这是模式匹配的一种形式,特别是。

我是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不绑定。

语法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,并将整个值移动或复制到其中。

为什么不先?为什么不先?