Cómo eliminar un elemento de un vector en Rust conociendo su valor
¡Hola comunidad! Soy nuevo en Rust y estoy tratando de entender los vectores. Tengo un vector, por ejemplo, `let mut numbers = vec![1, 2, 3, 4, 5];` y quiero eliminar un elemento conociendo su valor, no su índice. Digamos que quiero eliminar el número `3`. En otros lenguajes, como Python, escribiría `numbers.remove(3)` o `numbers = [x for x in numbers if x != 3]`. Pero en Rust es más complicado.
Intenté usar el método `remove()`, pero acepta un índice, no un valor. Luego intenté escribir un loop:
```rust
let mut numbers = vec![1, 2, 3, 4, 5];
let target = 3;
for (i, &val) in numbers.iter().enumerate() {
if val == target {
numbers.remove(i);
break;
}
}
```
Pero el compilador dio un error sobre el borrow checker. Leí que en Rust no se puede modificar una colección mientras se itera sobre ella. ¿Cómo eliminar correctamente un elemento por su valor? ¿Qué pasa si hay varios elementos iguales en el vector? Por ejemplo, `vec![1, 2, 3, 3, 4]` — necesito eliminar solo la primera ocurrencia.