3.5 タグを使って構造体にメタデータを埋め込む
Javaなど他の言語では、データのマッピングなどを自動で行うために、アノテーションを使ってフィールドやメソッドにメタデータを付与して利用します。Goでそれに該当するものは構造体のタグです。タグそのものは単なるテキスト情報で、コードの動作に直接影響を与えることはありませんが、このタグ情報を読み取って機能するライブラリを利用することで、構造体のデータを何かに変換したり、データファイルをロードして構造体のインスタンスに値を入れたりできます。
3.5.1 タグの記法
フィールド名 型 `json:"field"`
タグはGoの文法としてはどのような文字列も入れられることになっています。しかし、一般的な慣習として、次のような形式の文字列を1つ、複数の場合はバッククォートで囲んだ値をスペース区切りで、入れることになっています。reflect
パッケージを使うと、このキー名を元にコロンの後ろの情報を取得できます。キー名が異なれば、1つのフィールドに対して複数のライブラリ向けのタグを付与できます。
キー:"メタデータ"
タグを利用するパッケージには次のようなものがあります。
パッケージ名 |
説明 |
---|---|
encoding/jsonやencoding/xml |
JSONやXMLなどのデータ交換フォーマットとの相互変換 |
github.com/gorilla/schema |
HTMLのフォームやヘッダーとのデータ総合変換 |
github.com/jmoiron/sqlxやgorm.io/gorm、gocloud.dev/docstore |
データベースの行の読み書き |
github.com/kelseyhightower/envconfig ... |
Get 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.