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!