Avatar ·

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