Avatar ·

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 const e variáveis imutáveis com let