ホームページ >バックエンド開発 >Golang >Go の Struct タグで変数を使用できますか?

Go の Struct タグで変数を使用できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 22:48:03227ブラウズ

Can You Use Variables in Struct Tags in Go?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。