Qual é a diferença entre `mut` antes do nome da variável e depois dos dois pontos em Rust?
Olá a todos! Comecei a estudar Rust recentemente e me deparei com uma confusão na sintaxe de declaração de variáveis. Nos tutoriais, vejo duas maneiras diferentes de usar a palavra-chave `mut` e não consigo entender qual é a diferença entre elas.
A primeira maneira — `mut` é colocado antes do nome da variável:
```rust
let mut x = 5;
```
A segunda maneira — `mut` é colocado depois dos dois pontos, quando o tipo é especificado:
```rust
let x: mut i32 = 5;
```
Tentei ambas as opções no meu código, mas a segunda opção causa um erro de compilação. Aqui está o exemplo que escrevi:
```rust
fn main() {
let mut a = 10; // funciona
a += 5;
let b: mut i32 = 20; // erro!
b += 10;
println!("a = {}, b = {}", a, b);
}
```
O compilador diz algo como "expected type, found keyword mut". Eu pensei que `mut` pudesse ser colocado em qualquer lugar, mas aparentemente não é o caso. Expliquem, por favor, qual é a diferença entre essas opções e por que a segunda não funciona? Talvez haja casos em que `mut` depois dos dois