Der richtige Weg, einen neuen String aus einer Funktion in Rust zurückzugeben
Hallo! Ich bin neu in Rust und versuche zu verstehen, wie man Strings aus Funktionen zurückgibt. In anderen Sprachen habe ich einfach einen String erstellt und zurückgegeben, aber in Rust ist es aufgrund des Ownership-Systems komplizierter.
Ich habe eine Funktion, die einen String entgegennehmen, ein Prefix hinzufügen und einen neuen String zurückgeben soll. Hier ist mein Code, der nicht funktioniert:
```rust
fn add_prefix(s: &str) -> &str {
let result = String::from("prefix_") + s;
&result
}
```
Der Compiler gibt einen Fehler aus: `cannot return reference to local variable 'result'`. Ich verstehe, dass `result` nach dem Verlassen der Funktion gelöscht wird, aber wie gibt man dann korrekt einen neuen String zurück?
Ich habe verschiedene Ansätze ausprobiert:
1. `String` statt `&str` zurückgeben – aber dann muss der aufrufende Code den String erneut ausleihen.
2. `to_string()` verwenden – aber das scheint überflüssig.
3. Versucht, `&'static str` zurückzugeben – aber das ist für dynamische Strings nicht geeignet.
Könnt ihr mir sagen, welcher Ansatz in Rust als idiomatisch gilt, um neue Strings aus Funktionen zurückzugeben? Ich möchte es richtig machen.