Beim Arbeiten mit Strukturen in Go kann es nützlich sein, mehrere Namens-Tags zu definieren, um dasselbe Feld in verschiedenen Kontexten darzustellen. Dies ist besonders nützlich, wenn Sie mit Bibliotheken oder APIs von Drittanbietern arbeiten, die Daten in einem bestimmten Format erwarten.
Betrachten Sie das folgende Beispiel:
type Page struct { PageId string `bson:"pageId"` Meta map[string]interface{} `bson:"meta"` }
Diese Struktur soll ein Mongo-Datenbankdokument darstellen, wobei das PageId-Feld für MongoDB (bson) und das Meta-Feld markiert ist auch für MongoDB. Beim Codieren dieser Struktur in JSON wird das PageId-Feld jedoch als PageId (in Großbuchstaben) anstelle von pageId gerendert.
Um mehrere Namens-Tags für a zu definieren Verwenden Sie im Feld Leerzeichen anstelle von Kommas als Trennzeichen zwischen den Tags. Hier ist eine aktualisierte Version der Struktur:
type Page struct { PageId string `bson:"pageId" json:"pageId"` Meta map[string]interface{} `bson:"meta" json:"meta"` }
Mit dieser Änderung wird das PageId-Feld sowohl für MongoDB (als pageId) als auch für JSON (als pageId) getaggt. Dadurch wird sichergestellt, dass das Feld bei der Interaktion mit MongoDB oder der Codierung in JSON richtig benannt wird.
Die Go Reflect-Paketdokumentation gibt die Konvention für Tag-Strings an:
By convention, tag strings are a concatenation of optionally space-separated key:"value" pairs.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Namens-Tags für Felder in einer Go-Struktur definieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!