🎯 Tipo String no Rust
Em poucas palavras
Definição técnica ou simplificada do conceito.
📝 Notas e Desenvolvimento
🔗 Conexões e Contexto
- Atlas: MdC - Programação
- Notas Relacionadas:
📚 Referências e Fontes
Links Externos
Citações Diretas
📂 Outros Conteúdos Preservados
Memória e Alocação com String
Para que String suporte texto mutável e redimensionável, ela precisa solicitar memória do alocador de memória do sistema em tempo de execução. Essa memória é alocada na heap.
O aspecto crucial do tipo String de Rust (e outros tipos alocados na heap) é como ele lida com a desalocação de memória. Ao contrário de linguagens com coletores de lixo (GCs) que limpam automaticamente a memória não utilizada, ou linguagens que exigem liberação manual de memória, Rust adota uma abordagem diferente: Rust retorna automaticamente a memória usada por uma String ao alocador assim que a variável que a “possui” sai do escopo.
Considere este exemplo:
{
let s = String::from("hello"); // 's' is valid and its data is on the heap
// You can use 's' here
} // This scope is now over.
// Rust automatically deallocates the memory
// associated with 's' on the heap.Quando uma variável String sai do escopo, Rust chama automaticamente uma função especial chamada drop. A função drop é onde o código para liberar a memória alocada é colocado. Isso garante que a memória seja consistente e automaticamente retornada ao sistema, prevenindo bugs comuns relacionados à memória, como esquecer de liberar memória ou liberá-la várias vezes. Esse padrão é fundamental para o sistema de propriedade de Rust e suas garantias de segurança de memória.