ide*_*n42 3 syntactic-sugar rust
分配多个变量的常用方法通常在编程语言(如C或Python)中表示为:
a = b = c = value;
Run Code Online (Sandbox Code Playgroud)
在Rust中是否有相同的功能,或者你需要写出来吗?
a = value;
b = value;
c = value;
Run Code Online (Sandbox Code Playgroud)
如果这是显而易见的道歉,但我的所有搜索都会导致有关元组分配的问答.
Mil*_*les 17
您不能将分配的结果链接在一起。但是,您可以使用单个语句分配多个变量。
在let语句中,您可以通过在赋值左侧使用无可辩驳的模式来绑定多个名称:
let (a, b) = (1, 2);
Run Code Online (Sandbox Code Playgroud)
(从 Rust 1.59 开始,您还可以在任何赋值的左侧有多个值,而不仅仅是let语句。)
为了将相同的值分配给多个变量而不重复该值,可以使用切片模式作为赋值的左侧,并在右侧使用数组表达式来重复该值(如果它实现了 Copy):
let value = 42;
let [a, b, c] = [value; 3]; // or: let [mut a, mut b, mut c] = ...
println!("{} {} {}", a, b, c); // prints: 42 42 42
Run Code Online (Sandbox Code Playgroud)
(游乐场)
不,没有相应的.是的,您必须编写多个分配,或编写一个本身执行多个分配的宏.
事实上,你完全可以做到这一点!
let a @ b @ c = value;
Run Code Online (Sandbox Code Playgroud)
这使用了@模式中的语法,该语法用于将值绑定到变量,但保持模式匹配。因此,这会绑定value到a(通过复制),然后继续匹配模式b @ c,该模式绑定value到b,依此类推。
但请不要。这很令人困惑,并且比编写多个语句几乎没有任何好处。
| 归档时间: |
|
| 查看次数: |
845 次 |
| 最近记录: |