Primeiros passos: O Borrow Checker

20/05/2024

Hoje comecei a estudar o conceito mais famoso (e temido) do Rust: o Ownership.

Vindo de linguagens como JavaScript, onde o Garbage Collector faz tudo, ou C, onde malloc e free são manuais, o Rust propõe um meio-termo interessante.

O que é Ownership?🔗

O sistema de ownership é um conjunto de regras que o compilador verifica em tempo de compilação. Nenhuma dessas regras impõe overhead em tempo de execução.

As 3 Regras🔗

  1. Cada valor em Rust tem um proprietário (owner).
  2. Só pode haver um proprietário por vez.
  3. Quando o proprietário sai de escopo, o valor é descartado.

O problema da String🔗

Tentei fazer isso e o compilador gritou comigo:

let s1 = String::from("olá");
let s2 = s1;

println!("{}, mundo!", s1); // Erro aqui!