Was ist Reflexion?
Reflexion bezieht sich auf die Methode zur Analyse und Überprüfung von Variablen und deren Werten während der Laufzeit. Es ist eine sehr nützliche Technik beim Umgang mit abstrakten Komponenten einer Struktur. Dies bedeutet nicht, dass es auf Strukturen beschränkt ist. Lassen Sie uns verschiedene Komponenten der Reflexion in Golang diskutieren.
Erforderliche Importe
In Go wird die Fähigkeit zur Reflexion mit dem Reflect -Paket bereitgestellt. Daher müssen wir es vor der Verwendung importieren. Sie können es wie im folgenden Snippet importieren:
Import "reflektieren"Nach dem Import können Sie mit den bereitgestellten Methoden und Funktionen beginnen.
Art der()
Eine Methode aus dem reflektierenden Paket ist der Typof (). Mit dieser Funktion können Sie den Typ einer Variablen bestimmen.
Um es zu verwenden, können wir:
Paket MainDas obige Beispiel verwendet reflektiert.Typeof () Methode zum Überprüfen der Datentypen verschiedener Variablen. Die resultierende Ausgabe ist wie gezeigt:
Typ => intWert von()
Das reflektieren.ValueOF () Methode gibt den Wert einer bestimmten Variablen zurück. Ein Beispiel ist wie gezeigt:
fmt.Println ("value =>", reflektieren.Wert von (var4))Dies sollte den Wert der Var4 -Variablen zurückgeben.
Ausgang:
Wert => [1 2 3]Kopieren()
Die Kopiermethode wird verwendet, um die Elemente einer bestimmten Quelle in ein bestimmtes Ziel zu kopieren. Die Funktion führt den Kopiervorgang aus, bis das Ziel voller Elemente der Quelle ist.
Die Funktion gibt die Anzahl der Elemente zurück, die von der Quelle an das Ziel kopiert wurden.
Denken Sie daran, dass das Ziel und die Quelle vom gleichen Typ sein müssen.
Betrachten Sie das unten gezeigte Beispiel:
Paket MainIm obigen Beispiel verwenden wir das reflektieren.Valueof (), um die Variable an ihren Typ zu geben. Wir verwenden dann die Methode Copy (), um die Elemente des Dests in die SRC -Variable zu kopieren. Die resultierende Ausgabe ist wie gezeigt:
Elemente kopiert: 3Swapper ()
Mit der Swapper () -Methode können Sie Elemente in einer Scheibe tauschen. Ein Beispiel ist wie unten gezeigt:
lst: = [] int 1, 2, 3, 4, 5Das obige Beispiel übertaucht das Schicht vom ersten Index zum letzten aus. Der Ausgang ist wie gezeigt:
Vor dem Swap: [1 2 3 4 5]Numfield ()
Die Methode numfield () gibt die Anzahl der Felder innerhalb einer bestimmten Struktur zurück. Ein Beispiel ist wie gezeigt:
Geben Sie my_struct struct einDas obige sollte die Anzahl der Felder in der Struktur zurückgeben. Ausgang:
4Feld()
Die Methode Field () gibt den Namen und den Datentyp der Felder in einer Struktur zurück.
struct_1: = my_struct "a", 1, 3.14, falschDas obige Programm gibt den Namen der Felder in der Struktur und deren Datentypen zurück. Ausgang:
FELD_1 STRINGMakechan ()
Die Makechan () -Methode erstellt einen angegebenen Typkanal und Puffergrößenkanal. Beispiel:
var str chan StringDas obige sollte einen Kanal des Chan -Typs und eine Puffergröße von 256 erstellen. Die resultierende Ausgabe ist wie gezeigt:
Kanalart: ChanMakemap ()
Wie der Name schon sagt, erstellt die Funktion makemap () eine Karte des definierten Datentyps.
Nehmen Sie das folgende Beispiel:
var st Map [String] StringDies schafft eine neue Karte. Ausgang:
Art => KarteAbschluss
In diesem Leitfaden haben wir die Oberfläche der Verwendung des reflektierenden Pakets in Go kratzt. Denken Sie daran, dass das Paket viel mehr bietet als das, was hier besprochen wird.