Go で MongoDB の mgo ライブラリを使用するコンテキストで、特定の構文が混乱を引き起こしました:
type Something struct { Id bson.ObjectId "_id,omitempty" Name string }
これにより、型の後の文字列リテラルの目的は何なのかという疑問が生じました (例: Id フィールドの場合は "_id,omitempty")?
Struct 型の Go 言語仕様に従って、この構文はフィールド タグに使用されます。フィールド タグは、対応するフィールド宣言内のすべてのフィールドの属性となるオプションの文字列リテラルです。これらのタグはリフレクション インターフェイスを通じて表示されますが、それ以外の場合は Go コンパイラによって無視されます。
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" }
文字列リテラルは、プロトコル バッファーのフィールド番号を指定するためのフィールド タグとして機能します。
以上がGo 構造体宣言のフィールド タグとは何ですか?またその目的は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。