Rust中`mut`放在变量名前和冒号后有什么区别?
大家好!我最近开始学习Rust,在变量声明的语法上遇到了困惑。在教程中,我看到关键字`mut`有两种不同的使用方式,不明白它们之间的区别。
第一种方式——`mut`放在变量名前:
```rust
let mut x = 5;
```
第二种方式——`mut`放在冒号后,指定类型时:
```rust
let x: mut i32 = 5;
```
我尝试了两种方式,但第二种会导致编译错误。以下是我写的示例:
```rust
fn main() {
let mut a = 10; // 正常工作
a += 5;
let b: mut i32 = 20; // 错误!
b += 10;
println!("a = {}, b = {}", a, b);
}
```
编译器提示“expected type, found keyword mut”。我原以为`mut`可以放在任何位置,但显然并非如此。请解释一下这两种方式的区别,以及为什么第二种方式不工作?是否有某些情况下`mut`可以放在冒号后?