Pular para conteúdo

Exercícios: Aula 06 - Borrowing e Referências 🤝

🟢 Básico

  1. Imutabilidade por Padrão: Por que o código abaixo não compila? Como você o corrigiria usando referências?
    fn main() {
        let s = String::from("oi");
        mudar(&s);
    }
    fn mudar(texto: &String) {
        texto.push_str("!");
    }
    
  2. Símbolos: Explique a diferença entre usar &String e &mut String como parâmetro de uma função.

🟡 Intermediário

  1. Regra de Ouro: Escreva um código que tente criar duas referências mutáveis para a mesma variável e mostre o erro do compilador. Em seguida, explique por que essa regra existe.
  2. Escopo de Referência: Crie um programa onde você declara uma referência imutável, usa-a, e logo abaixo declara uma referência mutável. Mostre que isso funciona desde que a referência imutável não seja mais usada após a criação da mutável.

🔴 Desafio

  1. Simulador de Empréstimo: Crie uma função que receba uma referência mutável a um Vec<i32> e adicione a soma de todos os seus elementos como um novo elemento ao final do vetor.