Aprenda Rust - 2 - Variáveis let, Mutabilidade e Sombreamento
Este é um guia separado em vários posts:
- Chega de adiar, venha ter a primeira aula de Rust!
- Variáveis let, Mutabilidade e Sombreamento (Você está aqui)
- Tipagem de dados (escrevendo...)
Em rust quase todas as variáveis são declaradas utilizando a palavra-chave let
, existe ainda a palavra-chave const
mas iremos utilizar quase sempre o let
(atenção programadores JS não significam a mesma coisa que no JS). Bom, sem mais enrolação, abra o arquivo src/main.rs
do projeto criado no ultimo post e vamos finalmente começar a programar:
- Adicione uma linha antes do
println!("Hello, world!")
; - Digite:
let player = "elfo";
; - Altere a linha 3 para
println!("Olá meu amigo {player}!");
O código completo ficará dessa forma:
fn main() {
let player = "elfo";
println!("Olá meu amigo {player}!");
}
Executando cargo run
teremos:
Olá meu amigo elfo!
🎯 Linha a Linha de main.rs
Caso você já seja programador e não sentiu dificuldade em entender o código acima, pode pular esta explicação linha a linha.
- Definição da função main
- Definição da variável onde:
let
: palavra-chave utilizada para declarar uma variável;player
: nome da variável que está sendo definida;=
: símbolo para atribuição de valor, ou seja, estamos pegando o conteúdo da direita e jogando dentro da variável à esquerda;"elfo"
: Valor que está sendo atribuído à variávelplayer
;
- Impressão do texto
Olá meu amigo
+ o conteúdo da variávelplayer
+ "!"; - Término do corpo da função
Mutabilidade
Rust é imutável por padrão, para entender isso vamos brincar com nosso src/main.rs
:
- Adicione uma nova linha depois da linha 2 e digite
player = "humano"
;
fn main() {
let player = "elfo";
player = "humano";
println!("Olá meu amigo {player}!");
}
Executando cargo run
teremos nosso primeiro erro deste guia:
error[E0384]: cannot assign twice to immutable variable
player
(tradução: não é possível atribuir duas vezes a variável imutávelplayer
)
Para resolver essa situação basta adicionar a palavra-chave mut
(mutable) após a let
:
let mut player = "elfo";
Agora executando cargo run
temos o esperado (e sem erros):
Olá meu amigo humano!
Sombreamento
Sombreamento é um pouco parecido com a mutabilidade, basicamente nos permite substituir uma variável por outra desta forma:
let player = "elfo";
let player = "anão";
println!("{player}"); // imprime: anão
Veremos já no próximo post uma diferença entre sombreamento e mutabilidade.