Resultados de la búsqueda a petición "borrow-checker"

1 la respuesta

No se puede salir del contenido prestado al desenvolver

Este es el código que estoy tratando de ejecutar: 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))); }(en el patio ...

1 la respuesta

Error de verificación de préstamo con variable que no vive lo suficiente en lambda anidada

Recibo un error dentro de una lambda anidada. 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 la respuesta

¿Cómo puedo modelar un mapa bidireccional sin molestar al verificador de préstamos?

De¿Por qué no puedo almacenar un valor y una referencia a ese valor en la misma estructura? [https://stackoverflow.com/questions/32300132/why-cant-i-store-a-value-and-a-reference-to-that-value-in-the-same-struct] Aprendí que no puedo almacenar un ...

2 la respuesta

"No se puede mover fuera de la variable porque está prestada" al rotar las variables

Estoy escribiendo un programa que escribe en un archivo y rota el archivo en el que está escribiendo de vez en cuando. Cuando verifico para rotar el archivo, parece que no puedo cambiar el archivo ya que mi estructura lo tomó prestado. Incluso si ...

2 la respuesta

Iterando sobre un vector de referencias mutables a objetos de rasgos

tengo unstruct que contiene referencias mutables a objetos de rasgos: trait Task { fn do_it(&mut self); } struct Worker<'a> { tasks: Vec<&'a mut Task>, }En un método deWorker, Quiero iterar sobre las tareas y llamar a susdo_it: impl<'a> ...

3 la respuesta

La mejor manera de eliminar elementos de Vec dependiendo de otros elementos de la misma Vec

Tengo un vector de conjuntos y quiero eliminar todos los conjuntos que son subconjuntos de otros conjuntos en el vector. Ejemplo: a = {0, 3, 5} b = {0, 5} c = {0, 2, 3}En este caso me gustaría eliminarb, porque es un subconjunto dea. Estoy bien ...

1 la respuesta

Por qué los cierres de iterador anidados no copiarán valores del ámbito externo

Estoy tratando de usar iteradores anidados, donde el iterador interno usa el valor del iterador externo. vec![0;10].iter().flat_map(|&a| { (0..10).map(|b|{ a + b }) });error:a no vive lo suficiente (0..10).map(|b|{ ^^^nota: la referencia debe ...

4 la respuesta

¿Quién tomó prestada una variable?

Estoy peleando con el verificador de préstamos. Tengo dos piezas de código similares, una que funciona como esperaba y la otra no. El que funciona como espero: mod case1 { struct Foo {} struct Bar1 { x: Foo, } impl Bar1 { fn f<'a>(&'a mut self) ...

2 la respuesta

¿Estoy implementando IntoIterator incorrectamente para una referencia a una implementación de LazyList o es un error de óxido?

Al implementar una versión de LazyList (una lista inmutable, memorablemente calculada, enlazada individualmente, al igual que las listas de Haskell), me he encontrado con un problema de implementaciónIntoIterator en que el código no suelta la ...

2 la respuesta

¿Cómo usar el miembro de una estructura como su propia clave al insertar la estructura en un mapa sin duplicarla?

¿Es posible insertar una estructura en un mapa donde la clave es propiedad del valor que se está insertando? Cuando uso hash-maps en C, esto es algo a lo que estoy acostumbrado. Ejemplo de pseudocódigo: struct MyStruct { pub map: ...