Tracks
/
Go
Go
/
Lehrplan
/
Methoden
Me

Methoden in Go

3 Übungen

Über Methoden

Eine Methode ist eine Funktion mit einem besonderen Argument, dem Receiver. Der Receiver steht in einer eigenen Parameterliste zwischen dem func-Schlüsselwort und dem Namen der Methode.

func (receiver type) MethodName(parameters) (returnTypes) {

}

Du kannst eine Methode nur mit einem Receiver definieren, dessen Typ im selben Paket definiert ist wie die Methode.

type Person struct {
	Name string
}

func (p Person) Greetings() string {
	return fmt.Sprintf("Welcome %s!", p.Name)
}

s := Person{Name: "Bronson"}
fmt.Println(s.Greetings())
// Output: Welcome Bronson!

Es gibt zwei Arten von Receivern: Wert-Receiver und Pointer-Receiver.

Methoden mit einem Wert-Receiver arbeiten auf einer Kopie des übergebenen Werts. Das bedeutet, dass Änderungen am Receiver innerhalb der Methode für den Aufrufer nicht sichtbar sind.

Du kannst Methoden mit Pointer-Receivern deklarieren, um den Wert zu ändern, auf den der Receiver zeigt. Solche Änderungen sind auch für den Aufrufer der Methode sichtbar.

type rect struct {
	width, height int
}

func (r *rect) squareIt() {
	r.height = r.width
}

r := rect{width: 10, height: 20}
fmt.Printf("Width: %d, Height: %d\n", r.width, r.height)
// Output: Width: 10, Height: 20

r.squareIt()
fmt.Printf("Width: %d, Height: %d\n", r.width, r.height)
// Output: Width: 10, Height: 10

Mehrere Beispiele findest du hier. Schau dir auch dieses kurze Tutorial über Methoden an.

Denk daran: Eine Methode ist einfach eine Funktion mit einem Receiver-Argument.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab

Lerne Methoden

Das Üben ist gesperrt

Schalte 2 weitere Übungen frei, um Methoden zu üben