Pular para conteúdo

Exercícios: Aula 05 - Ownership 🧠

🟢 Básico

  1. Regras de Ouro: Cite as três regras fundamentais do Ownership no Rust.
  2. Stack vs Heap: Explique por que o Rust limpa os dados da Heap quando o dono sai de escopo e como isso evita vazamentos de memória.

🟡 Intermediário

  1. Identificando Erros: Por que o código abaixo falha ao compilar? Corrija-o usando .clone().
    let s1 = String::from("Rust");
    let s2 = s1;
    println!("Linguagem: {}", s1);
    
  2. Ownership em Funções: Escreva um código onde uma String é passada para uma função e depois você tenta usá-la no main. Mostre como "devolver" a posse da String para o main através do retorno da função.

🔴 Desafio

5. Simulando Memória: Desenhe (em formato de comentário ou diagrama) o que acontece com as variáveis s1 e s2 na Stack e na Heap durante um processo de Move vs um processo de Clone.

📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Regras de Ouro **Resposta Comentada:** - **Fundamentação:** No contexto de **Ownership (Parte 1)**, o conceito abordado (Regras de Ouro) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 2: Stack vs Heap **Resposta Comentada:** - **Fundamentação:** No contexto de **Ownership (Parte 1)**, o conceito abordado (Stack vs Heap) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 3: Identificando Erros **Resolução e Implementação:**
// Estrutura de implementação recomendada para Identificando Erros
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Ownership (Parte 1)**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 4: Ownership em Funções **Resolução e Implementação:**
// Estrutura de implementação recomendada para Ownership em Funções
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Ownership (Parte 1)**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 5: Simulando Memória **Resposta Comentada:** - **Fundamentação:** No contexto de **Ownership (Parte 1)**, o conceito abordado (Simulando Memória) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais.