Executando verificação de segurança...
-11

e.g. Como funciona o conceito de ownership em Rust

e.g. Como funciona: O conceito de ownership em Rust é fundamental para a segurança e eficiência do código. Cada valor em Rust tem um único proprietário, e quando a variável que o criou sai de escopo, o valor é automaticamente liberado da memória, evitando vazamentos de memória. O ownership também permite que um valor seja movido ou emprestado a outra variável, garantindo que não haja dois donos simultaneamente, o que pode causar erros de memória. Essa abordagem, sem a necessidade de um coletor de lixo, torna Rust uma linguagem de programação segura e rápida

E ISTO?

Consent-or-pay, também chamado de pay-or-okay, é uma tática de conformidade usada por certas empresas, principalmente a Meta, para aumentar as taxas nas quais os usuários consentem com o processamento de dados de acordo com o Regulamento Geral de Proteção de Dados (GDPR) da União Europeia. https://en.wikipedia.org/wiki/Consent_or_pay

A abreviação "e.g." significa "por exemplo" e é derivada da expressão em latim "exempli gratia". É utilizada para introduzir exemplos em uma frase. Por exemplo, você pode dizer: "Você deve comer mais alimentos ricos em fibras, e.g., frutas, vegetais e pães". É importante não confundir "e.g." com "i.e.", que significa "isto é" e é usado para esclarecer ou especificar algo. https://www.bing.com/search?q=e.g.&FORM=SSQNT1&ucpdpc=UCPD&PC=U531

Carregando publicação patrocinada...
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...