Wie konvertiert man Vec<String> in Vec<&str> in Rust?
Hallo zusammen! Ich habe angefangen, Rust zu lernen, und bin auf ein Problem mit der Typkonvertierung gestoßen. Ich habe ein `Vec` und muss es an eine Funktion übergeben, die `Vec<&str>` erwartet. Ich habe versucht, die Typen einfach zu casten, aber der Compiler meckert.
Hier ist mein Code:
```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()];
// Versuche, Vec an eine Funktion zu übergeben, die Vec<&str> erwartet
process_strings(owned_strings); // Fehler!
}
```
Der Compiler gibt einen Typfehler aus: `expected Vec<&str>, found Vec`. Ich verstehe, dass `String` und `&str` unterschiedliche Typen sind, aber wie konvertiere ich einen Vektor in den anderen? Ich habe es mit `.iter().collect()` versucht, bekomme aber `Vec<&String>` statt `Vec<&str>`. Vielleicht brauche ich Borrowing oder gibt es einen idiomatischen Weg in Rust?
Bitte sagt mir, wie man das richtig macht, am besten mit Beispielen.