Resultados da pesquisa a pedido "borrow-checker"
Recuperando a propriedade de uma referência mutável passada para uma função que aceita um tipo genérico
Por que esse código não compila: fn use_cursor(cursor: &mut io::Cursor<&mut Vec<u8>>) { // do some work } fn take_reference(data: &mut Vec<u8>) { { let mut buf = io::Cursor::new(data); use_cursor(&mut buf); } data.len(); } fn produce_data() { ...
Qual é a maneira correta de implementar o equivalente a vários retornos de chamada mutáveis (alocados estaticamente, despachados estaticamente etc.) no Rust?
Eu tenho o seguinte código de exemplo, que é a base padrão de APIs orientadas a eventos em outras linguagens de programação, mas no Rust o verificador de empréstimo o bloqueia com "não é possível emprestarp1 mutável mais de uma vez de cada vez ...
Como atualizar ou inserir em um Vec?
Estou escrevendo uma estrutura de dados no Rust. Contém umVec de pares de valores-chave. Ao inserir na estrutura, preciso encontrar uma chave correspondente e atualizar a chave e o valor (que na verdade é um ponteiro filho). O código se parece um ...
Por que o parâmetro "empresta" o valor? [duplicado]
Esta pergunta já tem uma resposta aqui: Emprestar argumentos de verificação e função em Rust, correto ou zeloso? [duplicado] [/questions/41421107/borrow-checker-and-function-arguments-in-rust-correct-or-over-zealous] 1 respostaAqui está uma ...
Como posso iterar simultaneamente sobre um Rust HashMap e modificar alguns de seus valores?
Estou tentando o Advent of Code in Rust este ano, como uma maneira de aprender o idioma. Analisei a entrada (desde o dia 7) na seguinte estrutura: struct Process { name: String, weight: u32, children: Vec<String>, parent: Option<String> }Estes ...
Como atribuir à variável usada na expressão de correspondência dentro de um ramo de correspondência?
Estou tentando implementar uma função geraljoin() que pode funcionar em qualquer iterador de iteradores. Estou com um problema com o verificador de empréstimo em ummatch expressão dentro donext() implementação de método. Aqui está uma ...
O erro de empréstimo mutável duplo em um loop ocorre mesmo com o NLL ativado
Suponha que eu tenha várias estruturas, como no exemplo a seguir e nonext() método Eu preciso puxar o próximo evento usando um buffer fornecido pelo usuário, mas se esse evento for um comentário e o sinalizador de ignorar comentários estiver ...
Não é possível emprestar mutuamente dentro de dois fechamentos diferentes no mesmo escopo
Meu objetivo é criar uma função (especificamente, floodfill) que funcione independentemente da estrutura de dados subjacente. Tentei fazer isso passando em dois fechamentos: um para consulta, que empresta alguns dados imutávelmente, e outro para ...
Por que posso retornar uma referência a um literal local, mas não a uma variável?
Por que esse código é compilado? fn get_iter() -> impl Iterator<Item = i32> { [1, 2, 3].iter().map(|&i| i) } fn main() { let _it = get_iter(); }[1, 2, 3] é uma variável local eiter() pede emprestado. Este código não deve ser compilado porque o ...
“O valor emprestado não vive o suficiente” ao usar as_slice ()
Eu encontrei um erro: extern crate rustc_serialize; // 0.3.24 use rustc_serialize::base64::{self, FromBase64, ToBase64}; fn main() { let a: [u8; 30] = [0; 30]; let b = a.from_base64().unwrap().as_slice(); println!("{:?}", b); }O ...