go / beginner
Snippet
Eigene Typen mit Structs definieren
Structs sind zusammengesetzte Typen, die verwandte Felder gruppieren. Du definierst ein Struct mit dem `type`-Keyword und erstellst Instanzen mit geschweifter Klammer-Initialisierung. Methoden können mit einem Receiver an Structs angehängt werden - hier bedeutet `(r Rectangle)`, dass die Methode zu Rectangle-Werten gehört. Zeiger auf Structs sind nützlich für Mutation und werden automatisch dereferenziert beim Zugriff auf Felder.
snippet.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package mainimport "fmt"type Rectangle struct {Width float64Height float64}func (r Rectangle) Area() float64 {return r.Width * r.Height}func main() {rect := Rectangle{Width: 10.5, Height: 4.2}fmt.Printf("Area: %.2f\n", rect.Area())ptr := &rectfmt.Printf("Width via pointer: %.2f\n", ptr.Width)}
Erklärung
1
type Rectangle struct {
Definiert einen neuen Struct-Typ mit Width- und Height-Feldern
2
func (r Rectangle) Area() float64 {
Methode mit Value-Receiver an Rectangle angehängt
3
rect := Rectangle{Width: 10.5, Height: 4.2}
Erstellt Instanz mit benannter Feld-Initialisierung
4
ptr := &rect
Erstellt einen Zeiger auf das Rechteck
5
ptr.Width
Go dereferenziert automatisch den Zeiger für Feldzugriff