Heim > Backend-Entwicklung > Golang > Wie kann ich mehrere Namens-Tags für Felder in einer Go-Struktur definieren?

Wie kann ich mehrere Namens-Tags für Felder in einer Go-Struktur definieren?

Linda Hamilton
Freigeben: 2024-12-04 14:47:11
Original
201 Leute haben es durchsucht

How Can I Define Multiple Name Tags for Fields in a Go Struct?

Mehrere Namens-Tags in einer Go-Struktur

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.

Problem: Definieren mehrerer Namens-Tags in einer Struktur

Betrachten Sie das folgende Beispiel:

type Page struct {
    PageId string                 `bson:"pageId"`
    Meta   map[string]interface{} `bson:"meta"`
}
Nach dem Login kopieren

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.

Lösung: Leerzeichen als Tag-Trennzeichen verwenden

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"`
}
Nach dem Login kopieren

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.

Dokumentationsreferenz

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.
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage