Dans le cadre de l'utilisation de la bibliothèque mgo pour MongoDB dans Go, une syntaxe particulière a semé la confusion :
type Something struct { Id bson.ObjectId "_id,omitempty" Name string }
Cela a soulevé la question : quel est le but de la chaîne littérale après le type (par exemple, "_id,omitempty" pour le Id field)?
Selon la spécification du langage Go pour les types Struct, cette syntaxe est utilisée pour les balises de champ. Une balise de champ est une chaîne littérale facultative qui devient un attribut pour tous les champs de la déclaration de champ correspondante. Bien que ces balises soient visibles via une interface de réflexion, elles sont autrement ignorées par le compilateur Go.
Dans l'exemple de tampon de protocole fourni dans la spécification Go :
// 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" }
Les chaînes littérales servent de balises de champ pour spécifier les numéros de champ du tampon de protocole.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!