Qual é a diferença entre variáveis imutáveis e constantes em Rust?
Olá! Comecei a estudar Rust e fiquei confuso com um conceito fundamental. A documentação diz que as variáveis são imutáveis por padrão, e para alterá-las é necessário usar `mut`. Mas também existe a palavra-chave `const`. Qual é a diferença entre elas?
Tentei escrever este código:
```rust
const MAX_POINTS: u32 = 100_000;
let x = 5;
x = 6; // Erro!
```
E parece que tanto `MAX_POINTS` quanto `x` não podem ser alterados após a inicialização. Mas o compilador reclama de `x = 6`, enquanto na constante não. Por quê? E se posso declarar uma variável imutável com `let`, para que servem as constantes? Em quais casos usar `const` e em quais usar `let`?
Além disso, notei que constantes sempre precisam ser anotadas com o tipo, enquanto variáveis nem sempre. Isso tem a ver com sua natureza? Agradeço uma explicação detalhada com exemplos para entender de uma vez por todas esse tópico.
Principais diferenças entre