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.
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs