Golang Struct Tags

Golang Struct Tags
Eine Struktur bezieht sich auf eine benannte Entität mit Feldern mit jeweils ihren Namen und Typ. Strukturen sind nützlich, wenn Sie benutzerdefinierte Typen definieren müssen.

Ein Beispiel für eine Struktur im GO -Programm finden Sie unten:

Geben Sie die Benutzerstruktur ein
Id int
Name Zeichenfolge
Alter int

Das vorherige Beispiel zeigt eine explizite Struktur, in der die Felder zu dieser spezifischen Struktur gehören.

Sie können auch eine implizite Struktur deklarieren, in der die Felder in einer anderen Struktur deklariert werden. Diese sind auch als eingebettete Strukturen bekannt.

Ein Beispiel ist unten gezeigt:

Geben Sie die Benutzerstruktur ein
Id int
Name Zeichenfolge
Alter int

Geben Sie Developer Struct ein
Benutzer
Gehalt int

In diesem vorherigen Beispiel zugreift der Entwicklerstruktur auf die Felder der Benutzerstruktur.

Struktur -Tags

In den GO -Programmen können Sie einem Strukturfeld ein optionales String -Literal hinzufügen. Dies ist als Struktur -Tag bekannt. Es wird verwendet, um eine Meta-Information für ein Strukturfeld zu halten. Sie können dann die Informationen im Feld in andere Pakete exportieren, um einen Vorgang auszuführen oder die Daten angemessen zu strukturieren.

Sie finden oft Tags in Codierungspaketen wie XML, JSON, YAML, ORMS und CONFIG -Management.

Um ein Tag für ein Strukturfeld zu deklarieren, können Sie das Schlüsselwertpaar in String-Literalklammern als „Schlüssel: Wert“ übergeben. Um mehr als ein Tag hinzuzufügen, trennen Sie jedes Tag mit einem Speicherplatz.

Hier ist das folgende Beispiel:

Geben Sie die Benutzerstruktur ein
Id int
Name Zeichenfolge 'Max: "10"'
Alter int "

Struktur -Tags und reflektieren Paket

Um Zugriff auf und verwenden Struktur -Tags, benötigen Sie das reflektierende Paket. Es ist Teil der Go -Standardbibliothek, und Sie können sie mit der Klausel importieren:

Import "reflektieren"

Es bietet die GET- und Suchmethoden, um mit Tags zu arbeiten.

Um zu überprüfen, ob das Tag in einem Feld gefunden wird, können wir die Suchmethode verwenden. Im Folgenden finden Sie einen Beispielcode:

Paket Main
importieren (
"fmt"
"reflektieren"
)
Geben Sie die Benutzerstruktur ein
Id int
Name Zeichenfolge 'Max: "10"'
Alter int "

func main ()
U: = Benutzer 1, "Jane Doe", 34
T: = reflektieren.Typof (u)
für i: = 0; ich < t.NumField(); i++
f: = t.Feld (i)
Wenn _, OK: = F.Schild.Lookup ("max"); OK
fmt.Println ("Tag gefunden")
anders
fmt.Println ("Tag nicht gefunden")


Das vorherige Code -Beispiel wird über die Felder der Struktur gelangt und prüfen, ob das angegebene Tag im Feld gefunden wird.

Um das Feld mit dem angegebenen Tag zu erhalten, können wir Folgendes tun:

Paket Main
importieren (
"fmt"
"reflektieren"
)
Geben Sie die Benutzerstruktur ein
Id int
Name Zeichenfolge 'Max: "10"'
Alter int "

func main ()
U: = Benutzer 1, "Jane Doe", 34
T: = reflektieren.Typof (u)
für i: = 0; ich < t.NumField(); i++
fmt.Println (t.Feld (i).Name)
fmt.Println (t.Feld (i).Schild.Get ("max"))

Abschluss

Dieser Artikel deckt die Grundlagen des Arbeiten und der Verwendung von Strukturen und dem reflektierenden Paket ab. Darüber hinaus wurden die Definition und Art von Strukturen diskutiert. Wir hoffen, Sie haben diesen Artikel hilfreich gefunden. Weitere Tipps und Tutorials finden Sie in anderen Linux -Hinweisartikeln.