Avatar ·

Wie extrahiere ich den inneren Wert aus einer Enum-Variante, wenn ich genau weiß, um welche Variante es sich handelt?

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ß, welche Enum-Variante 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, die Enum zu "entpacken" und den inneren Wert herauszuholen. Ich kenne `match`, aber ein ganzes match mit der Behandlung aller Varianten zu schreiben, wenn ich mir bei einer bestimmten sicher bin, scheint überflüssig. Die Verwendung von `if let` scheint...