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🔗
- Cada valor em Rust tem um proprietário (owner).
- Só pode haver um proprietário por vez.
- 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!