Wie erstelle ich Enums mit konstanten Werten in Rust?
Hallo Kollegen! Ich habe angefangen, Rust nach C++ und Python zu lernen, und bin auf ein unerwartetes Problem gestoßen: Wie erstellt man korrekt Enums mit konstanten Werten? In C++ war ich es gewohnt, so etwas wie `enum Color { RED = 0xFF0000, GREEN = 0x00FF00, BLUE = 0x0000FF };` zu schreiben, und jede Variante hatte einen numerischen Wert. In Python habe ich `IntEnum` oder einfach Klassen mit Konstanten verwendet. Aber in Rust, wenn ich versuche, Folgendes zu tun:
```rust
enum HttpStatus {
Ok = 200,
NotFound = 404,
InternalServerError = 500,
}
```
Gibt der Compiler einen Fehler aus, wenn ich versuche, diese Werte als Ganzzahlen zu verwenden. Zum Beispiel möchte ich den Status in eine Zahl umwandeln, um ihn über das Netzwerk zu senden oder für das Logging. Ich habe versucht, `status as u32` zu schreiben, aber das funktioniert nur für Enums, die explizit einen Ganzzahltyp erben. Was ist, wenn ich Strings oder andere komplexe Daten speichern möchte? Zum Beispiel für ein Enum "Fehler" mit Codes und Textbeschreibungen:
```rust
enum Error {
NotFound { code: 42
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Bereitstellung einer Swift-App auf einem VPS: Fortgeschrittenes Handbuch
Asynchrone Programmierung in Swift: Ein vollständiger Leitfaden für Anfänger
Wie man Rust-Entwickler wird: Tipps und Lebenslauf in der Praxis
Rust-Testing von Grund auf: Erste Tests schreiben leicht gemacht