Resultados da pesquisa a pedido "borrow-checker"

1 a resposta

Não é possível sair do conteúdo emprestado ao desembrulhar

Este é o código que estou tentando executar: fn my_fn(arg1: &Option<Box<i32>>) -> (i32) { if arg1.is_none() { return 0; } let integer = arg1.unwrap(); *integer } fn main() { let integer = 42; my_fn(&Some(Box::new(integer))); }(no playground ...

1 a resposta

Erro de verificação de empréstimo com a variável que não vive o tempo suficiente no lambda aninhado

Estou recebendo um erro dentro de uma lambda aninhada. let rows = vec![ vec![3, 6, 2, 8, 9, 0], vec![0, 0, 1, 4, 5, 1], ]; let pair_sums = rows.iter() .flat_map(|row| { (0 ..= row.len()).map(|i| row[i] + row[i + 1]) }) .collect::<Vec<_>>(); ...

1 a resposta

Como posso modelar um mapa bidirecional sem incomodar o verificador de empréstimos?

DePor que não consigo armazenar um valor e uma referência a esse valor na mesma estrutura? [https://stackoverflow.com/questions/32300132/why-cant-i-store-a-value-and-a-reference-to-that-value-in-the-same-struct] Aprendi que não posso armazenar um ...

2 a resposta

"Não pode sair da variável porque é emprestado" ao girar variáveis

Estou escrevendo um programa que grava em um arquivo e gira o arquivo para o qual está gravando de vez em quando. Quando eu checo para girar o arquivo, não consigo mudar o arquivo, pois ele é emprestado pela minha estrutura. Mesmo se eudrop Na ...

2 a resposta

Iterando sobre um Vetor de Referências Mutáveis para Objetos de Caracteres

eu tenho umstruct que contém referências mutáveis para objetos de características: trait Task { fn do_it(&mut self); } struct Worker<'a> { tasks: Vec<&'a mut Task>, }Em um método deWorker, Quero iterar sobre as tarefas e chamar ...

3 a resposta

Melhor maneira de remover elementos do Vec, dependendo de outros elementos do mesmo Vec

Eu tenho um vetor de conjuntos e quero remover todos os conjuntos que são subconjuntos de outros conjuntos no vetor. Exemplo: a = {0, 3, 5} b = {0, 5} c = {0, 2, 3}Neste caso, gostaria de removerb, porque é um subconjunto dea. Estou bem com o ...

1 a resposta

Por que os fechamentos de iteradores aninhados não copiam valores do escopo externo

Estou tentando usar iteradores aninhados, onde o iterador interno usa valor do iterador externo. vec![0;10].iter().flat_map(|&a| { (0..10).map(|b|{ a + b }) });erro:a não vive o suficiente (0..10).map(|b|{ ^^^nota: a referência deve ser válida ...

4 a resposta

Quem pegou emprestada uma variável?

Estou brigando com o verificador de empréstimos. Eu tenho duas partes de código semelhantes, uma funcionando como eu esperava e a outra não. Aquele que funciona como eu esperava: mod case1 { struct Foo {} struct Bar1 { x: Foo, } impl Bar1 { fn ...

2 a resposta

Estou implementando incorretamente o IntoIterator para fazer referência a uma implementação LazyList ou isso é um bug do Rust?

Ao implementar uma versão de um LazyList (uma lista vinculada memorizada imutável, computada preguiçosamente, memorizada e imutável, como as listas de Haskell), deparei-me com um problema de implementaçãoIntoIterator em que o código não descarta ...

2 a resposta

Como usar o membro de uma estrutura como sua própria chave ao inserir a estrutura em um mapa sem duplicá-lo?

É possível inserir uma estrutura em um mapa onde a chave pertence ao valor que está sendo inserido? Ao usar mapas de hash em C, isso é algo que eu estou acostumado a fazer. Exemplo de pseudocódigo: struct MyStruct { pub map: BTreeMap<&String, ...