Capítulo 02: Estrutura Sequencial e Mutabilidade ⛏️🟩
Neste capítulo, vamos aprender a realizar cálculos matemáticos e a lidar com a imutabilidade do Rust, usando o universo do Minecraft como tema!
📖 O que é Estrutura Sequencial?
É aquela em que as instruções são executadas uma após a outra, de cima para baixo.
📖 Recurso Rust: Mutabilidade
No Rust, por padrão, todas as variáveis são imutáveis (você não pode mudar o valor delas depois de criadas). Para permitir que um valor mude, precisamos usar a palavra-chave mut!
📖 Exemplo Guiado: Calculadora de Recursos
Vamos criar um programa que calcula quantos blocos de madeira precisamos para fazer uma quantidade de tábuas.
- Crie o arquivo
calculadora_recursos.rsna pastasrc/:
use std::io;
fn main() {
// Precisamos de 'mut' porque o valor vai ser preenchido pelo usuário!
let mut madeira_bruta = String::new();
println!("Quantos blocos de madeira bruta voce coletou? ");
// Lendo a entrada do teclado
io::stdin()
.read_line(&mut madeira_bruta)
.expect("Falha ao ler a linha");
// Convertendo texto para número
let madeira_bruta: i32 = madeira_bruta
.trim()
.parse()
.expect("Por favor, digite um numero!");
let tabuas = madeira_bruta * 4;
println!("Voce pode fazer {} tabuas de madeira!", tabuas);
}🕹️ Como Executar e Testar no VS Code
- Abra o terminal integrado.
- Compile:
rustc calculadora_recursos.rs - Execute:
./calculadora_recursos - Digite
5e pressione Enter.
Resultado Esperado:
Quantos blocos de madeira bruta voce coletou? 5
Voce pode fazer 20 tabuas de madeira!📊 Ilustração Visual: Fluxo Sequencial
Veja como os dados fluem pelo programa:
graph LR A["📥 Entrada: Madeira Bruta"] --> B["⚙️ Processamento: Multiplicar por 4"] B --> C["📤 Saída: Tábuas de Madeira"]
🛠️ Prática Obrigatória 1: Estoque de Esmeraldas
Um aldeão quer trocar esmeraldas por pães. Cada pão custa 3 esmeraldas. Crie um programa chamado troca_aldeao.rs que pergunte quantos pães o jogador quer (pode deixar o valor fixo no código primeiro para simplificar, ou ler do teclado se quiser o desafio!) e calcule o total de esmeraldas necessárias.
🔑 Gabarito de Código
Prática 1: troca_aldeao.rs (Com valor fixo para simplificar)
fn main() {
let paes = 5; // Valor fixo
let esmeraldas = paes * 3;
println!("Quantos paes voce deseja comprar? {}", paes);
println!("Total de esmeraldas necessarias: {}", esmeraldas);
}