Struct in Go
Mit struct
s kann man quasi einen neuen, eigenen Datentyp erstellen:
type auto struct {
marke string
modell string
breite float64
laenge float64
ps int
innen interieur
}
type interieur struct {
farbe string
material string
}
Damit wäre ein Datentype auto
erstellt, den man Variablen zuweisen kann und allen damit erstellten Autos können die gleichen Eigenschaften zugewiesen werden: Marke, Modell, …
Und wie man auch sehen kann, kann man struct
s ineinander verschachteln.
»Structs« ähneln in ihrer Nutzung den Objekten in Javascript oder Dictionaries in Python.
Und auch ähnlich greift man auf die einzelnen Felder zu, mit dem dot-Operator .
:
meinAuto := auto{}
meinAuto.innen.farbe = "anthrazit"
Es gibt auch anonyme struct
s, auf die man aber nach Möglichkeit verzichten sollte.
Sie werden einfach erstellt, indem man nach der Definition sofort die Werte zuweist:
meinAuto2 := struct {
Marke string
Model string
} {
Marke: "VW"
Modell: "Polo"
}
Natürlich kann man diese struct
dann nicht noch einmal verwenden.
Daher sollte man, wenn möglich, immer benannte struct
s (erstes Beispiel) verwenden.
Ausnahmen davon könnten sein, wenn man sicher ist, dass diese struct
wirklich nur dieses eine Mal gebraucht wird.
Ein weiteres Beispiel für anonyme »structs« könnte auch die Erstellung von JSON-Objekten sein.