Ferrugem - Constante
Constantes representam valores que não podem ser alterados. Se você declarar uma constante, não há como seu valor mudar. A palavra-chave para usar constantes éconst. As constantes devem ser digitadas explicitamente. A seguir está a sintaxe para declarar uma constante.
const VARIABLE_NAME:dataType = value;
Convenção de Nomenclatura Rust Constant
A convenção de nomenclatura para constantes é semelhante à das variáveis. Todos os caracteres em um nome de constante geralmente estão em maiúsculas. Ao contrário de declarar variáveis, olet palavra-chave não é usada para declarar uma constante.
Usamos constantes em Rust no exemplo abaixo -
fn main() {
const USER_LIMIT:i32 = 100; // Declare a integer constant
const PI:f32 = 3.14; //Declare a float constant
println!("user limit is {}",USER_LIMIT); //Display value of the constant
println!("pi value is {}",PI); //Display value of the constant
}
Constantes v / s Variáveis
Nesta seção, aprenderemos sobre os fatores de diferenciação entre constantes e variáveis.
Constantes são declaradas usando o const palavra-chave enquanto as variáveis são declaradas usando o let palavra-chave.
Uma declaração de variável pode opcionalmente ter um tipo de dados, enquanto uma declaração de constante deve especificar o tipo de dados. Isso significa que const USER_LIMIT = 100 resultará em um erro.
Uma variável declarada usando o letpalavra-chave é por padrão imutável. No entanto, você tem a opção de alterá-lo usando omutpalavra-chave. As constantes são imutáveis.
As constantes podem ser definidas apenas para uma expressão constante e não para o resultado de uma chamada de função ou qualquer outro valor que será calculado em tempo de execução.
As constantes podem ser declaradas em qualquer escopo, incluindo o escopo global, o que as torna úteis para valores que muitas partes do código precisam conhecer.
Sombreamento de variáveis e constantes
Rust permite que os programadores declarem variáveis com o mesmo nome. Nesse caso, a nova variável substitui a variável anterior.
Vamos entender isso com um exemplo.
fn main() {
let salary = 100.00;
let salary = 1.50 ;
// reads first salary
println!("The value of salary is :{}",salary);
}
O código acima declara duas variáveis pelo nome salário. A primeira declaração recebe 100,00, enquanto a segunda declaração recebe o valor 1,50. A segunda variável sombreia ou oculta a primeira variável enquanto exibe a saída.
Resultado
The value of salary is :1.50
Rust oferece suporte a variáveis com diferentes tipos de dados durante o sombreamento.
Considere o seguinte exemplo.
O código declara duas variáveis pelo nome uname. A primeira declaração é atribuída a um valor de string, enquanto a segunda declaração é atribuída a um inteiro. A função len retorna o número total de caracteres em um valor de string.
fn main() {
let uname = "Mohtashim";
let uname = uname.len();
println!("name changed to integer : {}",uname);
}
Resultado
name changed to integer: 9
Ao contrário das variáveis, as constantes não podem ser sombreadas. Se as variáveis no programa acima forem substituídas por constantes, o compilador gerará um erro.
fn main() {
const NAME:&str = "Mohtashim";
const NAME:usize = NAME.len();
//Error : `NAME` already defined
println!("name changed to integer : {}",NAME);
}