Mit Go können Sie Strukturen mit integrierten oder benutzerdefinierten Typen erstellen und verwenden.
Dieser Leitfaden macht eine Reise und untersucht, wie Strukturen in der Go -Programmiersprache funktionieren.
Eine Struktur deklarieren
Die folgende Syntax zeigt, wie man Strukturen in Go erstellt:
typestruct_namestructWir rufen zunächst das Schlüsselwort vom Typ an. Als nächstes kommt der Name der Struktur. Der Name der Struktur kann etwas benutzerdefiniert sein (solange sie den Regeln der Benennung in Go folgt). Wir verwenden dann das Struct -Schlüsselwort, gefolgt von einem Paar lockiger Zahnspangen.
In den Zahnspangen definieren wir verschiedene Felder, aus denen die Struktur besteht. Der Feldname folgt von seinem Datentyp.
Struktur deklarieren - Beispiel
Der nachstehende Beispielcode definiert eine Struktur, die als Mitarbeiter bezeichnet wird. Es enthält 5 Felder mit verschiedenen Datentypen.
typeToMePoMeee structDas obige erstellt eine Mitarbeiterstruktur, die Felder verschiedener Typen enthält.
Hinweis: Wenn Sie die Struktur und ihre Felder in andere Pakete exportieren möchten, stellen Sie sicher, dass die Namen mit Großbuchstaben beginnen. Andernfalls ist der Umfang auf dieses Paket beschränkt.
Struktur -Instanziierung
Das Definieren einer Struktur bedeutet, dass wir nur eine Blaupause erstellen. Um ein Objekt aus der Struktur zu erstellen, müssen wir eine Instanz davon erstellen.
Um eine Instanz einer Klasse in Go zu erstellen, beginnen Sie mit dem Schlüsselwort var, gefolgt vom Namen der Instanz.
Das folgende Beispiel schafft eine Instanz der Mitarbeiterstruktur.
var EMP -MitarbeiterSobald wir eine Instanz der Struktur erstellt haben, können wir unter Verwendung der Punktnotation wie gezeigt auf die Felder zugreifen:
var EMP -MitarbeiterSobald wir die Felder des Instace festgelegt haben, können wir sie als:
fmt.Println (emp)Der obige Ausschnitt kehrt zurück:
$ go run strukturs.gehenStruktur -Instantiation - wörtlich
Sie können auch eine Instanz einer Struktur unter Verwendung der Struct Literal -Methode erstellen. Das folgende Beispiel zeigt Struct Literal, um eine Instanz einer Struktur zu erstellen.
var emp1 = Mitarbeiter "Mary a", 26, falsch, "Spieleentwickler", 150000.10Das obige Beispiel erstellt eine Instanz der Klasse und legt die Felder fest, ohne die Punktnotation zu verwenden.
Struktur -Instantiation - neues Schlüsselwort
Wenn Sie die Werte während der Instanzerstellung nicht festlegen möchten, können Sie das neue Keyword verwenden. Zum Beispiel:
var emp2 = neu (Mitarbeiter)Nach dem Erstellen können wir auf die Instanzfelder zugreifen und Werte festlegen als:
EMP2.Name = "Judy L"Zugriff auf Strukturfelder
Um auf die Felder einer Struktur zuzugreifen, geben Sie uns den Punktbetreiber,. Wir beginnen mit dem Namen der Strukturinstanz und dann mit dem Namen des Feldes.
Um beispielsweise den Namen des EMP2 zu erhalten, können wir es tun:
fmt.Println (emp2.Name)Dies sollte den vom angegebenen Feld gespeicherten Wert zurückgeben.
Strukturmethoden
Mit dem Methodenempfänger können wir einer Struktur auch eine Methode hinzufügen. Betrachten Sie das folgende Beispiel, das eine Methode für die Mitarbeiterstruktur erzeugt.
func (e Mitarbeiter) info () StringSobald wir die Methode deklariert haben, können wir eine Instanz erstellen und die Felder als:
var e MitarbeiterSchließlich können wir die Methode als:
fmt.Println (e.Die Info())Nach dem Methodenaufruf sollten wir eine Ausgabe erhalten wie:
Name: Thomas JStrukturfeldtyp
Sie können den Feldtyp mithilfe des reflektierenden Pakets herausfinden. Um beispielsweise den Typ des pensionierten Feldes zu erhalten, können wir dies tun:
fmt.Println (reflektieren.Typof (e.Im Ruhestand))Der obige Code gibt den Feldtyp zurück als:
::AusgangStrukturvergleich
Sie können überprüfen, ob eine Struktur mit dem Vergleichsoperator gleich einer anderen ist. Beachten Sie, dass eine Struktur als gleich definiert ist, wenn alle Felder einen gleichen Wert haben.
Hinweis: Nicht alle Datentypen sind vergleichbar.
Das folgende Beispiel erstellt zwei Strukturen und vergleicht sie mit dem Operator == Operator.
…Da die Strukturen nicht gleich sind, wird der sonstige Block ausgeführt.
HINWEIS: Leere und Nullwerte werden als gleich angesehen.
Abschluss
Puh!
Das war ein hervorragendes Tutorial über die Arbeit mit Strukturen in Go Lang. Dieses Tutorial deckt jedoch nur die Grundlagen ab. Es gibt viel mehr Vorgänge, die Sie mit Strukturen ausführen können.
Üben Sie weiter und sehen Sie sich unsere Go -Tutorials an, um mehr zu erfahren.