Um in Go den Namen einer Aufzählung zu erhalten, ist normalerweise eine Definition erforderlich eine String-Methode func (TheEnum) String(). Dies kann jedoch mühsam sein, insbesondere wenn es viele Aufzählungen gibt.
Eine Alternative besteht darin, das Stringer-Tool von Go aus dem Standard-Tools-Paket zu verwenden. Dies kann durch Ausführen des folgenden Befehls im selben Verzeichnis wie Ihre Enum-Definition erfolgen:
stringer -type=Pill
Dadurch wird eine Datei erstellt, die eine Definition einer func (Pill) String()-String-Methode enthält.
package painkiller type Pill int const ( Placebo Pill = iota Aspirin Ibuprofen Paracetamol Acetaminophen = Paracetamol )
Ausführen des Stringer-Befehls:
stringer -type=Pill
Erstellt Folgendes Datei:
// Code generated by "stringer -type=Pill"; DO NOT EDIT. package painkiller import "strconv" func (p Pill) String() string { switch p { case Placebo: return "Placebo" case Aspirin: return "Aspirin" case Ibuprofen: return "Ibuprofen" case Paracetamol: return "Paracetamol" case Acetaminophen: return "Acetaminophen" } return "Pill(" + strconv.FormatInt(int64(p), 10) + ")" }
Diese Methode kann dann verwendet werden, um den Namen einer Aufzählung abzurufen, zum Beispiel:
fmt.Println(Pill(3).String()) // Paracetamol
Das Stringer-Tool kann mit dem Befehl go generic in Go verwendet werden 1.4, um für jede Aufzählung automatisch eine String-Methode func (TheEnum) String() zu generieren.
Das obige ist der detaillierte Inhalt vonWie kann ich den Namen einer Go-Enumeration abrufen, ohne manuell eine „String()'-Methode zu definieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!