Avatar ·

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.