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 eine Person-Struktur und erstelle einen Zeiger darauf:
type Person struct {
name string
age int
}
func main() {
person := Person{name: "Alice", age: 30}
// Erstelle einen Zeiger auf die Struktur
personPtr := &person
// Zugriff auf Felder über den Zeiger
fmt.Println(personPtr.name)
fmt.Println(personPtr.age)
}Die Ausgabe zeigt, dass wir über den Zeiger auf Felder zugreifen können:
Alice
30Sie können Felder auch über den Zeiger ändern:
personPtr.age = 31
fmt.Println(person.age) // Gibt aus: 31Aufgabe
AnfängerIn dieser Herausforderung übst du den Umgang mit Zeigern auf Strukturen in Go. Du hast eine Person-Struktur mit den Feldern name und age. Deine Aufgabe besteht darin, die Informationen der Person mithilfe eines Zeigers auf die Struktur zu aktualisieren.
Der Code erstellt bereits eine Person-Struktur und einen Zeiger darauf. Du musst die Informationen der Person über den Zeiger ändern.
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)
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Vergleichs- und logische Operatoren
Vergleichsoperatoren – Teil 1Vergleichsoperatoren – Teil 2Logischer UND-OperatorLogischer ODER-OperatorLogischer NICHT-OperatorGrundlagen der OperatorrangfolgeZusammenfassung – Vergleiche durchführen7Kontrollfluss: Schleifen
Die `for`-Schleife erklärt`for`-Schleife – Grundlagen`for`-Schleife – nur BedingungDas Schlüsselwort `break`Das Schlüsselwort `continue`Verschachtelte SchleifenWiederholung – Aktionen wiederholen10Zusammengesetzte Typen: Arrays
Einführung in ArraysArrays deklarierenArrays initialisierenAuf Array-Elemente zugreifenArray-Länge mit `len`Arrays durchlaufenMehrdimensionale Arrays13Zusammengesetzte Typen: Structs
Benutzerdefinierte Typen definierenStruct-Instanzen erstellenAuf Struct-Felder zugreifenPointer auf StructsStructs initialisierenEingebettete StructsAnonyme StructsRückblick – Benutzerdefinierte Datenstrukturen2Variablen und grundlegende Datentypen
Was ist eine VariableTypinferenz mit `:=`Ganzzahlen (int)GleitkommazahlenBoolesche WerteZeichenkettenNullwerteKonstantenNamenskonventionenRückblick – Variablen und Typen5Grundlegende Ein- und Ausgabe
Formatierte AusgabeFormatierungsverbenDatentypen ausgebenGrundlegende Benutzereingaben erhaltenRückblick – Ein- und Ausgabe8Funktionen
Funktionen verstehenEine Funktion deklarierenFunktionen aufrufenFunktionsparameterEinen einzelnen Wert zurückgebenMehrere Werte zurückgebenBenannte RückgabewerteGrundlagen des FunktionsumfangsRückblick – Wiederverwendbaren Code erstellen3Grundlegende Operatoren
Arithmetische OperatorenDivisionsoperatorDer Modulo-OperatorZuweisungsoperatorErweiterte ZuweisungsoperatorenInkrement und DekrementRückblick – Berechnungen6Kontrollfluss: Bedingungen
Die `if`-AnweisungDas `else`-SchlüsselwortDas `else if`-SchlüsselwortVariablen-Shadowing in `if`Variablen initialisierenDie `switch`-AnweisungSwitch mit AusdrückenSwitch ohne AusdruckDas `fallthrough`-SchlüsselwortZusammenfassung – Entscheidungen treffen9Zeiger
Was ist ein Zeiger?Zeigervariablen deklarierenDer AdressoperatorZeiger dereferenzierenZeiger in Funktionen verwendenNil-ZeigerRückblick – Zeiger verstehen12Zusammengesetzte Datentypen: Maps
Einführung in MapsMap-Literale deklarierenMaps mit `make` erstellenSchlüssel-Wert-Paare hinzufügen und aktualisierenAuf Map-Werte zugreifenDas Vorhandensein eines Schlüssels prüfenMap-Einträge löschenLänge von MapsMaps durchlaufenZusammenfassung – Schlüssel-Wert-SpeicherungÜbe selbstständig: Online-Go-Compiler