Wie extrahiere ich den inneren Wert aus einem Enum-Variant, wenn ich genau weiß, welcher Variant es ist?
Hallo! Ich schreibe in Rust und bin auf ein Problem bei der Arbeit mit Enums gestoßen. Ich habe diesen Code:
```rust
enum Message {
Text(String),
Number(i32),
Quit,
}
fn process(msg: Message) {
// Ich weiß genau, dass msg Text(String) ist
// Aber wie bekomme ich den String?
let text = msg; // hier gibt es natürlich einen Fehler
println!("Nachricht: {}", text);
}
```
Ich stoße oft auf Situationen, in denen ich genau weiß, welchen Enum-Variant ich verarbeite – zum Beispiel nach einer Bedingungsprüfung oder in einem Kontext, wo dies durch die Programmlogik garantiert ist. Aber Rust erlaubt es nicht einfach, ein Enum zu "entpacken" und den inneren Wert herauszuholen.
Ich kenne `match`, aber einen ganzen match mit der Behandlung aller Variants zu schreiben, wenn ich mir bei einem bestimmten sicher bin, scheint überflüssig. Die Verwendung von `if let` scheint...
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Arbeiten mit dem Dateisystem in JavaScript: Vollständiger Leitfaden zu Node.js