Wie man Enum-Werte in Rust einer Ganzzahl (i32, u64) zuordnet?
Hallo Kollegen! Ich habe gerade angefangen, Rust zu lernen, und bin auf ein Problem gestoßen, das einfach erscheint, für das ich aber keine elegante Lösung finde.\n\nIch habe ein Enum `Color`, das Farben beschreibt:\n\n```rust\nenum Color {\n Red,\n Green,\n Blue,\n}\n```\n\nIch möchte jedem Variant einen ganzzahligen Wert zuweisen, sodass z.B. `Red` 0 entspricht, `Green` 1 und `Blue` 2. Und dann brauche ich:\n\n1. Eine Zahl aus einem Enum-Variant zu erhalten (z.B. aus `Color::Green` die `1`).\n2. Die umgekehrte Umwandlung: aus einer Zahl (z.B. `2`) den Variant `Color::Blue` zu erhalten.\n\nIn C++ oder C# würde ich einfach `(int)color` oder `(Color)2` schreiben. In Python würde ich ein Dictionary verwenden. Aber in Rust ist alles typstrikter.\n\nIch habe versucht, `as` zu verwenden:\n\n```rust\nlet c = Color::Red;\nlet n =
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Logging in Rust-Anwendungen: Best Practices in der Praxis
Warum beschwert sich Room über den Hauptthread? Fehleranalyse und 3 Lösungswege
Rückgabe von Iteratoren in Rust: Geheimnisse der Leistung und Zero-Cost-Abstraktionen
Python auf dem Handy lernen: Programmieren für Anfänger