Können Sie Variablen in Go-Struktur-Tags verwenden?

Barbara Streisand
Freigeben: 2024-11-01 02:58:02
Original
202 Leute haben es durchsucht

Can You Use Variables in Go Struct Tags?

Variablen in Go-Struktur-Tags einbetten

Die Struktur-Tags von Go, die häufig für Anmerkungen und Metadaten verwendet werden, umfassen im Allgemeinen einfache Zeichenfolgenliterale. Benutzer können jedoch auf Situationen stoßen, in denen dynamische oder berechnete Werte in diesen Tags gewünscht sind.

Betrachten Sie die folgende Struktur mit einem „Typ“-Feld, das für das JSON-Marshalling mit Anmerkungen versehen ist:

<code class="go">type Shape struct {
    Type string `json:"type"`
}</code>
Nach dem Login kopieren

Dieser Ansatz funktioniert bettet ein String-Literal perfekt und direkt in das Tag ein. Man kann jedoch versuchen, eine Variable in das Tag einzufügen:

<code class="go">const (
    TYPE = "type"
)

type Shape struct {
    Type string fmt.Sprintf("json:\"%s\"", TYPE)
}</code>
Nach dem Login kopieren

Dieser flexiblere Ansatz schlägt aufgrund der Natur der Go-Struktur-Tags mit einem Syntaxfehler fehl. Die Sprache beschränkt Struktur-Tags auf String-Literale zur Kompilierzeit und verbietet dynamische oder variablenbasierte Ausdrücke.

Daher ist es in Go nicht möglich, Variablen in Struktur-Tags zu verwenden. Diese Einschränkung ergibt sich aus der Tatsache, dass Struktur-Tags im Wesentlichen lexikalische Annotationen sind, die zur Kompilierungszeit bekannt sein und verarbeitet werden müssen. Laufzeitauswertungen sind mit diesem Mechanismus nicht kompatibel.

Das obige ist der detaillierte Inhalt vonKönnen Sie Variablen in Go-Struktur-Tags verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!