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 )
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
Eine neue Datei mercury_string.go wird im Paketkontext generiert, die Folgendes enthält:
func (MERCURY) String() string
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!