Capítulo 07: Strings (Cadeias de Caracteres) 🐺⚔️
Neste capítulo, vamos aprender a trabalhar com textos no Rust, que possui dois tipos principais de strings, com o tema The Witcher!
📖 O que são Strings em Rust?
No Rust, strings são um pouco diferentes de outras linguagens. Temos dois tipos principais:
String: Um texto que pode crescer, muda de tamanho e fica na memória Heap.&str(String Slice): Uma referência a um texto (geralmente imutável). Os textos que escrevemos diretamente entre aspas são desse tipo!
📖 Exemplo Guiado: Nome do Bruxo
Vamos aprender a declarar uma string do tipo String e concatenar (juntar) textos!
- Crie o arquivo
nome_bruxo.rsna pastasrc/:
fn main() {
// Criando uma String que pode mudar de tamanho
let mut nome = String::from("Geralt");
println!("Bruxo original: {}", nome);
// Adicionando texto (concatenando)
nome.push_str(" de Rivia");
println!("Nome completo: {}", nome);
}🕹️ Como Executar e Testar no VS Code
- Abra o terminal integrado.
- Compile:
rustc nome_bruxo.rs - Execute:
./nome_bruxo
Resultado Esperado:
Bruxo original: Geralt
Nome completo: Geralt de Rivia📊 Ilustração Visual: String vs Slice
Veja como a memória é organizada:
graph LR subgraph "String (Heap)" A["'G','e','r','a','l','t'"] end subgraph "&str (Slice)" B["Aponta para os dados na Heap"] end B --> A
🛠️ Prática Obrigatória 1: Grito de Guerra
Crie um programa chamado grito_guerra.rs que crie uma String vazia (use String::new()). Peça ao usuário para digitar uma palavra (ou use uma variável fixa para simplificar) e adicione essa palavra à string repetidas vezes para formar um grito de guerra (ex: “Haa! Haa! Haa!”).
🔑 Gabarito de Código
Prática 1: grito_guerra.rs
fn main() {
let mut grito = String::new();
let palavra = "Haa! ";
for _ in 0..3 {
grito.push_str(palavra);
}
println!("Grito de Guerra: {}", grito.trim());
}