Rust eo "empréstimo"de propriedade

Um conceito basic de Rust é sua base de como a linguagem lida com dados. Rust의 소유권에 대한 생각은 'dono"para cada valor, se o dono do valor sai de escopo, este valor é 'solto'입니다. Essa regra faz com que o compilador de Rust evite erros como de apontador pendente, onde um ponteiro aponta para um local inválido na memória, ou outros erros de comportamento como liberar o mesmo endereço de memória mais de uma vez como o uso de free() da linguagem C.
Mesmo com suas regras mais estritas, Rust oferece certa flexibilidade com recursos extras de gerenciamento.

Um desses recursos é o empréstimo de propriedade, ou 소유권 차용 em inglês.
Temporariamente, um valor pode ser emprestado para outra variável durante seu ciclo de vida sem a necessidade da troca de proprietário.
Isso é possível com o que Rust chama de referência, muito parecido com um pointer de C/C++, uma referência aponta para o endereço de memória onde esta o valor armazenado, a diferença para um pointer é que a referência semper aponta para um endereço válido.
Isso é feito com o uso do & (conhecido como E comercial ou ampersand em inglês).

Funciona assim, vamos declarar a função main, com a variável i que contém a String "String exemplo", realizamos a impressão de i e fechamos o escopo.
Sem realizar o empréstimo de i , usando o & , não seria possível realizar a impressão de i dentro da função empréstimo.

fn main() {
    let i = String::from("String exemplo");
    emprestimo(&i);
    println!("Valor em main: {}", i);
}
fn emprestimo(i: &String) {   
    println!("Valor emprestado: {}", i);
}



Porém, como indicamos isso com & , então é possível compilar e ter a impressão de i realizada em ambas funções sem a necessidade da troca de proprietário (i ).



Sem realizar esse empréstimo de valor, o compilador já nos orientaria o norte correto.




Uma dificuldade que pode ser encontrada nesse tipo de empréstimo do valor é não ser possível a alteração do valor em questão, por padrão, variáveis ​​são imutáveis ​​em Rust, logo referências também serão imutáveis.
Por isso, assim como é possível tornar variáveis ​​mutáveis, referências idem, com o uso da keyword mut junto a & .

Tornando uma referência mutável, ao emprestar o valor, o proprietário temporário pode exclusivamente alterar esse valor.
Importantíssimo notar que enquanto tenho uma referência mutável ativa, não se pode ter qualquer outro tipo de empréstimo no dado valor.

"데이터 경쟁"에 대한 사전 오류가 발생했습니다. 문제는 프로그램 다중화에 대한 문제가 아니라 프로세스의 정확성과 용맹함의 비교와 비교, 결과에 대한 문제가 있다는 것입니다.

Uma data race seria duas tarefas que escrevem um valor na nossa variável i , digamos 30 na tarefa A, e 5 na tarefa B, e depois realizam um cálculo que retorna o valor de i .
O valor retornado pod ser tanto 30, como 5, ou até então um valor quebrado.

녹이 발생하지 않도록 보호하고 보호할 수 있는 보호 장치가 존재하지 않으면 가치가 결정되지 않습니다.

좋은 웹페이지 즐겨찾기