Wie vergleicht man einen String mit String-Literalen in Rust via match?
Hallo zusammen! Ich habe gerade angefangen, Rust zu lernen, und bin auf ein Problem gestoßen, als ich match zum Vergleichen von String verwendet habe. Ich habe eine Variable vom Typ String und möchte prüfen, ob sie einem bestimmten String-Literal entspricht. Zum Beispiel schreibe ich einen einfachen Befehls-Parser:
```rust
fn main() {
let command = String::from("start");
match command {
"start" => println!("Start!"),
"stop" => println!("Stopp!"),
_ => println!("Unbekannter Befehl"),
}
}
```
Aber der Compiler gibt einen Fehler aus:
```
error[E0308]: mismatched types
expected struct `String`, found `&str`
```
Ich verstehe, dass String und &str unterschiedliche Typen sind, aber wie schreibe ich match richtig? Ich habe versucht, as_str() zu verwenden, bin mir aber nicht sicher, ob das der beste Weg ist. Ich habe auch gehört, dass man Literale umwandeln kann.
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs