Wie man String in &'static str in Rust umwandelt: Eine vollständige Anleitung
Hallo zusammen! Ich bin neu in Rust und habe ein Problem bei der Arbeit mit Strings. Ich muss einen Besitzer eines `String` an eine Funktion übergeben, die `&'static str` erwartet. Hier ist ein Beispielcode, der nicht kompiliert:
```rust
fn process_static(s: &'static str) {
println!("Static string: {}", s);
}
fn main() {
let my_string = String::from("Hello, world!");
// Fehler: expected &'static str, found String
process_static(&my_string);
}
```
Der Compiler sagt: "`my_string` does not live long enough". Ich verstehe, dass `&'static str` ein String ist, der während der gesamten Programmlaufzeit lebt, während `String` ein dynamischer String ist, der freigegeben werden kann. Aber wie kann ich den Inhalt eines `String` an eine Funktion übergeben, die `&'static str` erfordert?
Ich habe `as_str()`, `to_string()` ausprobiert, sogar versucht, `Box::leak` zu verwenden, bin mir aber nicht sicher, ob das richtig ist. Gibt es vielleicht einen einfachen Weg? Oder muss ich die Architektur ändern?
Bitte sagt mir, wie ich das richtig lösen kann.