Go の構造体タグ: 変数は使用できますか?
構造体タグは、開発者がフィールドにメタデータを添付できるようにする Go の強力な機能です。 。このメタデータは、JSON エンコーダやデコーダなどのさまざまなツールで使用できます。
構造体タグに文字列リテラルを使用する
最初の例では、文字列を使用しています。 struct タグを定義するためのリテラル:
<code class="go">type Shape struct { Type string `json:"type"` }</code>
タグの値はコンパイル時の文字列定数であるため、これは有効なアプローチです。
Struct タグに変数を使用しようとしている
2 番目の例では、変数を使用して構造体タグを定義しようとしています。
<code class="go">const ( TYPE = "type" ) type Shape struct { Type string fmt.Sprintf("json:\"%s\"", TYPE) }</code>
ただし、コンパイラは次のことを期待しているため、このアプローチでは構文エラーが発生します。タグ値として文字列リテラル。コンパイル時にタグ値がわかっている必要があるため、構造体タグでは変数を使用できません。
結論
構造体タグに変数を使用すると便利に思えるかもしれませんが、 Go 言語ではこれが許可されていません。構造体タグを定義するには文字列リテラルを使用する必要があります。
以上がGo の Struct タグで変数を使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。