link

Logo for Markus Rennings

Struct in Go

Mit structs 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 structs 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 structs, 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 structs (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.