Avatar ·

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.