Menu
Coddy logo textTech

Pointer auf Structs

Teil des Abschnitts Grundlagen der GO-Journey von Coddy — Lektion 97 von 109.

Beim Arbeiten mit Strukturen können Sie Zeiger auf diese erstellen, genau wie bei anderen Typen. Dies ist nützlich, um große Strukturen effizient zu übergeben.

Definiere ein Person-Struct und erstelle einen Pointer darauf:

type Person struct {
    name string
    age  int
}

func main() {
    person := Person{name: "Alice", age: 30}
    
    // Erstelle einen Pointer auf das Struct
    personPtr := &person
    
    // Greife über den Pointer auf die Felder zu
    fmt.Println(personPtr.name)
    fmt.Println(personPtr.age)
}

Die Ausgabe zeigt, dass wir über den Zeiger auf Felder zugreifen können:

Alice
30

Sie können Felder auch über den Zeiger ändern:

personPtr.age = 31
fmt.Println(person.age)  // Gibt aus: 31
challenge icon

Aufgabe

Anfänger

In dieser Herausforderung wirst du den Umgang mit Pointern auf Structs in Go üben. Du hast ein Person-Struct mit den Feldern name und age. Deine Aufgabe ist es, die Informationen der Person mithilfe eines Pointers auf das Struct zu aktualisieren.

Der Code erstellt bereits ein Person-Struct und einen Pointer darauf. Du musst die Informationen der Person über den Pointer ändern.

Spickzettel

Erstellen Sie Pointer auf Structs mit dem &-Operator:

type Person struct {
    name string
    age  int
}

person := Person{name: "Alice", age: 30}
personPtr := &person

Greifen Sie über Pointer auf Struct-Felder zu und ändern Sie diese:

// Zugriff auf Felder
fmt.Println(personPtr.name)
fmt.Println(personPtr.age)

// Felder ändern
personPtr.age = 31

Probier es selbst

package main

import "fmt"

// Person-Struktur mit den Feldern Name und Alter
type Person struct {
	name string
	age  int
}

func main() {
	// Erstelle eine Person-Struktur
	person := Person{
		name: "John",
		age:  25,
	}

	// Erstelle einen Zeiger auf die Person-Struktur
	personPtr := &person

	// Gib die ursprünglichen Informationen der Person aus
	fmt.Println("Original person:")
	fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)

	// TODO: Verwende den Zeiger, um den Namen der Person in "Jane" und das Alter in 30 zu ändern
	// Hinweis: Du kannst auf Strukturfelder über einen Zeiger mit der Punktnotation zugreifen
	

	// Gib die aktualisierten Informationen der Person aus
	fmt.Println("Updated person:")
	fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen