Cómo convertir Vec<String> a Vec<&str> en Rust?
¡Hola a todos! Empecé a aprender Rust y me encontré con un problema de conversión de tipos. Tengo un `Vec` y necesito pasarlo a una función que espera `Vec<&str>`. Intenté simplemente convertir los tipos, pero el compilador se queja.
Aquí está mi código:
```rust
fn process_strings(strings: Vec<&str>) {
for s in strings {
println!("{}", s);
}
}
fn main() {
let owned_strings: Vec = vec!["hello".to_string(), "world".to_string()];
// Intento pasar Vec a una función que espera Vec<&str>
process_strings(owned_strings); // ¡Error!
}
```
El compilador da un error de tipo: `expected Vec<&str>, found Vec`. Entiendo que `String` y `&str` son tipos diferentes, pero ¿cómo convierto un vector en el otro? Intenté usar `.iter().collect()`, pero obtengo `Vec<&String>`, no `Vec<&str>`. ¿Quizás se necesita borrowing o hay alguna forma idiomática en Rust?
Por favor, indíquenme cómo hacerlo correctamente, preferiblemente con ejemplos.