Structs und Interfaces

Go Structs

Group related values into your own type with named fields.

  • Fortgeschritten
  • 3 Min. Lesezeit
  • 1 ausführbares Beispiel
Das lernst du
  • Defining a struct
  • Fields and %+v
  • Structs are copied
User
Name"Ada"
Age37
Activetrue

Your own type with named fields

A struct is a type you define by naming its fields. It keeps related data together, such as the name, age and status of a user.

Fields are read and changed with a dot. %v prints the values and %+v adds the field names. Assigning a struct copies it, so changing guest does not change user. A struct can also be declared in place without a name.

Das Wichtigste

  1. Fields are read and changed with a dot.
  2. %+v prints the field names too.
  3. Assigning a struct copies it.

Ausführbares Go-Beispiel

Go
Code ausführen →
main.go
package main

import "fmt"

type User struct {
	Name   string
	Age    int
	Active bool
}

func main() {
	user := User{Name: "Ada", Age: 36, Active: true}
	user.Age++

	fmt.Println(user.Name, user.Age)
	fmt.Printf("%v\n%+v\n", user, user)

	guest := user // structs are copied on assignment
	guest.Name = "Guest"
	fmt.Println(user.Name, guest.Name)

	point := struct{ X, Y int }{3, 4}
	fmt.Println(point.X + point.Y)
}
Run-Button für dieses Beispiel erstellen Ergebnis der Ausführung
Ada 37
{Ada 37 true}
{Name:Ada Age:37 Active:true}
Ada Guest
7

Üben

Öffne das Beispiel im Online-Compiler, ändere einen Wert oder füge eine Zeile hinzu und sage die Ausgabe voraus, bevor du es ausführst. Bring den Code danach absichtlich zum Scheitern und lies die Meldung des Compilers.

Lektion fertig?

Markiere sie als gelernt, um deinen Fortschritt zu verfolgen.

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges