Heim >Backend-Entwicklung >Golang >Wie kann ich Go-Enum-Namen abrufen, ohne die Methode String() zu verwenden?

Wie kann ich Go-Enum-Namen abrufen, ohne die Methode String() zu verwenden?

Susan Sarandon
Susan SarandonOriginal
2024-11-30 19:00:13418Durchsuche

How Can I Retrieve Go Enum Names Without Using the String() Method?

Aufzählungsnamen in Go ohne String()-Methode abrufen

In Go ist es nicht möglich, Aufzählungsnamen direkt abzurufen, ohne sie explizit zu definieren als String-Werte mit der String()-Methode. Es gibt jedoch alternative Ansätze zur dynamischen Definition von Konstanten.

1. Stringer-Tool

Das Standard-Tools-Paket stellt das Stringer-Tool bereit, das automatisch eine String()-Methode für eine Aufzählung generiert. Durch Ausführen des folgenden Befehls:

stringer -type=EnumName

im selben Verzeichnis wie die Enum-Definition erstellt das Stringer-Tool eine Datei, die die Definition der String()-Methode enthält.

2. Strukturbasierte Aufzählung

Eine strukturbasierte Aufzählung umfasst die Definition eines zugrunde liegenden Aufzählungstyps und dessen Einbettung in eine Struktur. Jedes Feld der Struktur entspricht einem Enumerationswert und ist explizit mit seinem Namen gekennzeichnet. Der Vorteil dieses Ansatzes besteht darin, dass Sie direkt auf den Enum-Wert und seinen Namen zugreifen können.

3. Stringbasierte Aufzählung

In einer stringbasierten Aufzählung werden Aufzählungswerte als Zeichenfolgen dargestellt. Sie können eine Karte erstellen, die jedem Zeichenfolgewert einen entsprechenden konstanten Wert zuordnet. Dadurch können Sie den Namen einer Aufzählung basierend auf ihrem Wert programmgesteuert abrufen.

Während diese Methoden alternative Ansätze zur dynamischen Definition von Konstanten bieten, erfordern sie alle, dass Sie die Aufzählungsnamen explizit neu definieren oder angeben. Daher bieten sie möglicherweise keinen wesentlichen Vorteil gegenüber der herkömmlichen String()-Methode in Bezug auf die Wiederverwendbarkeit des Codes oder die einfache Wartbarkeit.

Das obige ist der detaillierte Inhalt vonWie kann ich Go-Enum-Namen abrufen, ohne die Methode String() zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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