如何同时声明多个可变变量?

时间:2016-06-27 03:57:32

标签: rust

我可以像这样声明多个常量:

let (a, b, c) = (1, 0.0, 3);

但为什么我不能用可变变量来做这件事呢?

let mut (a, b, c) = (1, 0.0, 3);抛出编译错误:

error: expected identifier, found `(`
 --> <anon>:2:13
2 |>     let mut (a, b, c) = (1, 0.0, 3);
  |>             ^

1 个答案:

答案 0 :(得分:21)

正确的语法是

let (mut a, mut b, mut c) = (1, 0.0, 3);

Mutability是绑定的属性,abc都是不同的绑定,在模式匹配后,每个绑定都绑定到元组的特定元素。因此,它们可以单独变得可变。

如果您想指定类型,您也可以这样做:

let (mut a, mut b, mut c): (u8, f32, i32) = (1, 0.0, 3); 

对于数字文字,您还可以使用后缀形式:

let (mut a, mut b, mut c) = (1u8, 0.0f32, 3i32);

当然,没有理由为示例代码执行此操作;只有3个单独的陈述就更容易了。

  

声明多个常量

这些不是常数,它们只是不可变的变量。 const是一个不同的概念。