Executando verificação de segurança...
4

O conceito de ownership não poderia estar mais diluído...

Vamos dar ênfase no conceito, pois é tudo que o ownership é, um conceito para ilustrar a ideia por trás de como Rust lida com memória.

Vi você citando ownership permite emprestar... Não, ownership não faz nada, e isso sequer é parte do conceito de ownership e sim de borrow, os dois se completam.

O sistema que garante que o as regras do ownership e borrow é o borrow check, onde, em tempo de compilação, irá garantir que:

Todas as variáveis só possuem um owner por você -> evita vazamento de memória, acesso de memória nula, dentre várias outras coisas.

Que as variáveis só tenha um owner por vez -> evita problemas de concorrência.

E que, quando um owner for descartado (o programa chegou no fim do escopo, e a função drop() foi chamada, bem semelhante com uma biblioteca de C++), o valor relacionado aquele owner é descartado também.

Vale lembrar que, onde o valor é armazenado, heap ou stack é muito importante para entender o conceito de ownership. Além disso, lifetimes é outro ponto muito importante para entender como o borrow check "sabe" que há um problema no gerenciamento de memória ainda é tempo de compilação.


Bem, acho que isso explica um pouco melhor o que é ownership, porém ainda não está 100%. Se realmente quer entender isso leia o livro do Rust, encontrado no site oficial gratuitamente. Pratique bastante e crie projetos.

Complementando as restrições do borrow check, ele garante um monte de outras coisas, como referências não nulas, se os lifetimes estão sendo respeitados, e etc...

Carregando publicação patrocinada...