Heim > Backend-Entwicklung > Golang > Wie kann ich Go-Enum-Namen erhalten, ohne explizite String-Konvertierungen zu schreiben?

Wie kann ich Go-Enum-Namen erhalten, ohne explizite String-Konvertierungen zu schreiben?

Barbara Streisand
Freigeben: 2024-12-07 07:45:17
Original
695 Leute haben es durchsucht

How Can I Get Go Enum Names Without Writing Explicit String Conversions?

Enum-Namen in Go ohne explizite String-Konvertierung abrufen

In Go werden Enums typischerweise als Konstanten implementiert, denen ganzzahlige Werte zugewiesen werden. Der Zugriff auf den Enum-Namen ohne explizite Erstellung einer String()-Methode kann jedoch umständlich sein.

Betrachten Sie dieses Beispiel:

const (
    MERCURY = 1
    VENUS = iota
    EARTH
    MARS
    JUPITER
    SATURN
    URANUS
    NEPTUNE
    PLUTO
)
Nach dem Login kopieren

Um den Enum-Namen zu erhalten, kann man eine String() definieren Methode für jeden Enum-Wert, was zu wiederholter Neueingabe oder Codegenerierung führt. Gibt es eine Alternative?

Verwendung des Stringer-Tools

Go bietet das Stringer-Tool, das die Erstellung von String()-Methoden für Konstanten automatisiert. Durch Ausführen des folgenden Befehls im selben Verzeichnis wie der obige Code:

stringer -type=MERCURY
Nach dem Login kopieren

Eine neue Datei mercury_string.go wird im Paketkontext generiert, die Folgendes enthält:

func (MERCURY) String() string
Nach dem Login kopieren

Diese Methode ermöglicht Bequemes Abrufen des Enum-Namens und Reduzierung der Notwendigkeit einer expliziten String-Konvertierung.

Zusätzlich Hinweis:

Obwohl diese Technik das Problem des Erhaltens von Enum-Namen ohne explizite String()-Methoden löst, bedenken Sie, dass sie die Verwendung eines externen Tools erfordert und in bestimmten Szenarien möglicherweise nicht immer durchführbar ist.

Das obige ist der detaillierte Inhalt vonWie kann ich Go-Enum-Namen erhalten, ohne explizite String-Konvertierungen zu schreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage