Heim  >  Artikel  >  Backend-Entwicklung  >  Wie bekomme ich Go-Enum-Namen ohne eine String()-Funktion?

Wie bekomme ich Go-Enum-Namen ohne eine String()-Funktion?

DDD
DDDOriginal
2024-11-27 09:10:09288Durchsuche

How to Get Go Enum Names Without a String() Function?

Wie erhalte ich Enum-Namen ohne die String()-Funktion?

Go-Aufzählungen, die durch iota erreicht werden, verfügen nicht über eine explizite String()-Funktion, was den direkten Abruf von einschränkt Enum-Namen als Strings. In diesem Artikel werden Alternativen untersucht, um diese Einschränkung zu überwinden und Enum-Namen zu erhalten, ohne die Beschriftungen erneut eingeben zu müssen.

Eine mögliche Lösung ist die Verwendung des Stringer-Tools aus dem Standard-Tools-Paket. Dieses Tool automatisiert die Generierung einer String()-Funktion für Ihren Aufzählungstyp.

Betrachten Sie beispielsweise die folgende Aufzählungsdefinition:

const (
    MERCURY = 1
    VENUS = iota
    EARTH
    MARS
    JUPITER
    SATURN
    URANUS
    NEPTUNE
    PLUTO
)

Um die String()-Funktion für diese Aufzählung zu generieren , führen Sie den folgenden Befehl im Terminal aus:

stringer -type=Planet

Dieser Befehl erstellt die Datei planet_string.go im aktuellen Arbeitsverzeichnis, die die generierte Funktion enthält. Die Funktion kann jetzt verwendet werden, um Planetennamen als Strings zu erhalten.

Zusätzlich können Sie die Verwendung von strukturbasierten oder stringbasierten Konstanten in Betracht ziehen. Während diese Ansätze das einmalige erneute Eingeben von Etiketten erfordern, bieten sie in bestimmten Szenarien eine größere Flexibilität.

Das obige ist der detaillierte Inhalt vonWie bekomme ich Go-Enum-Namen ohne eine String()-Funktion?. 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