Menu
Coddy logo textTech

Structs als Klassen

Teil des Abschnitts Objektorientierte Programmierung der GO-Journey von Coddy — Lektion 6 von 107.

Structs in Go dienen demselben Zweck wie Klassen in anderen Sprachen. Sie bündeln zusammengehörige Daten in einem einzigen Typ.

Definieren Sie ein Struct mit mehreren Feldtypen

type Car struct {
    Brand string
    Model string
    Year  int
    Price float64
}

Erstellen Sie eine Instanz unter Verwendung von Feldnamen

car := Car{
    Brand: "Toyota",
    Model: "Camry",
    Year:  2023,
    Price: 28000.50,
}

Felder aufrufen und ändern

fmt.Println(car.Brand) // Toyota
fmt.Println(car.Year)  // 2023

car.Price = 27000.00   // Ein Feld ändern
fmt.Println(car.Price) // 27000

Structs können andere Structs enthalten

type Engine struct {
    Horsepower int
    FuelType   string
}

type Car struct {
    Brand  string
    Model  string
    Engine Engine
}

car := Car{
    Brand:  "Ford",
    Model:  "Mustang",
    Engine: Engine{Horsepower: 450, FuelType: "Gasoline"},
}
fmt.Println(car.Engine.Horsepower) // 450

Structs gruppieren zusammengehörige Felder. Sie greifen mit dem Punkt-Operator auf Felder zu, und Sie können Structs in anderen Structs verschachteln, um komplexe Datenmodelle zu erstellen.

challenge icon

Aufgabe

Mittel

Definiere eine Profile-Struktur mit den folgenden Feldern:

  • Name — string
  • Email — string
  • Age — int
  • Role — string

Spickzettel

Structs in Go bündeln zusammengehörige Daten in einem einzigen Typ, ähnlich wie Klassen in anderen Sprachen.

Definieren Sie ein Struct mit mehreren Feldtypen:

type Car struct {
    Brand string
    Model string
    Year  int
    Price float64
}

Erstellen Sie eine Instanz unter Verwendung von Feldnamen:

car := Car{
    Brand: "Toyota",
    Model: "Camry",
    Year:  2023,
    Price: 28000.50,
}

Greifen Sie auf Felder zu und ändern Sie diese mit dem Punkt-Operator:

fmt.Println(car.Brand) // Toyota
car.Price = 27000.00   // Modify a field

Structs können andere Structs enthalten (verschachtelte Structs):

type Engine struct {
    Horsepower int
    FuelType   string
}

type Car struct {
    Brand  string
    Model  string
    Engine Engine
}

car := Car{
    Brand:  "Ford",
    Model:  "Mustang",
    Engine: Engine{Horsepower: 450, FuelType: "Gasoline"},
}
fmt.Println(car.Engine.Horsepower) // 450

Probier es selbst

package main

import "fmt"

func main() {
    var name, email, role string
    var age int
    fmt.Scan(&name, &email, &age, &role)

    p := Profile{
        Name:  name,
        Email: email,
        Age:   age,
        Role:  role,
    }

    fmt.Printf("Name: %s\n", p.Name)
    fmt.Printf("Email: %s\n", p.Email)
    fmt.Printf("Age: %d\n", p.Age)
    fmt.Printf("Role: %s\n", p.Role)
}
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 Objektorientierte Programmierung