Im Zusammenhang mit der Verwendung der MGO-Bibliothek für MongoDB in Go hat eine bestimmte Syntax für Verwirrung gesorgt:
type Something struct { Id bson.ObjectId "_id,omitempty" Name string }
Dadurch stellte sich die Frage: Was ist der Zweck des String-Literals nach dem Typ (z. B. „_id,omitempty“ für das Id-Feld)?
Gemäß der Go-Sprachspezifikation für Strukturtypen wird diese Syntax für Feld-Tags verwendet. Ein Feld-Tag ist ein optionales Zeichenfolgenliteral, das zu einem Attribut für alle Felder in der entsprechenden Felddeklaration wird. Während diese Tags über eine Reflexionsschnittstelle sichtbar sind, werden sie ansonsten vom Go-Compiler ignoriert.
Im Protokollpufferbeispiel in der Go-Spezifikation:
// A struct corresponding to the TimeStamp protocol buffer. // The tag strings define the protocol buffer field numbers. struct { microsec uint64 "field 1" serverIP6 uint64 "field 2" process string "field 3" }
Die Zeichenfolgenliterale dienen als Feld-Tags zur Angabe der Feldnummern des Protokollpuffers.
Das obige ist der detaillierte Inhalt vonWas sind Feld-Tags in Go-Struct-Deklarationen und welchen Zweck haben sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!