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

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);
  |>             ^

最佳答案

正确的语法是

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

可变性是绑定(bind)的一个属性,abc都是不同的绑定(bind),在匹配模式之后,每个绑定(bind)都绑定(bind)到元组的特定元素。因此,它们可以单独制成可变的。

如果要指定类型,也可以执行以下操作:
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是一个不同的概念。

关于rust - 如何同时声明多个可变变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38045700/

10-13 01:13