it-praxisportal/courses/go/05_structs_und_methoden
2026-08-30 13:10:38 +02:00
..
aufgabe.go Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
index.html Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
musterloesung.go Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
README.md Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
test_aufgabe.go Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00

Go 05: Structs & Methoden 🏗️

Willkommen zu Modul 05 des Go (Golang) Kurses!

In diesem Modul lernst du, wie Go Datenstrukturen und Verhalten ohne traditionelle Klassen kapselt: Struct-Definitionen, Konstruktoren, Value-Receiver vs. Pointer-Receiver und Struct Embedding.


💡 1. Das Wichtigste in Kürze

Structs & Konstruktor-Pattern

In Go deklarierst du Typen mit type Name struct. Konstruktoren werden als Funktionen nach dem Schema NewName(...) *Name realisiert.

Value- vs. Pointer-Receiver

  • Value-Receiver (func (u User) Info()): Arbeitet auf einer Kopie. Das Original-Struct im Speicher wird nicht berührt.
  • Pointer-Receiver (func (u *User) SetEmail(e string)): Erhält die Speicheradresse des Objekts. Änderungen sind persistent.

Struct Embedding (Komposition)

Felder und Methoden eines anonym eingebetteten Structs stehen dem übergeordneten Struct automatisch zur Verfügung:

type Admin struct {
    User
    Superpower string
}

🎯 Teilziele in aufgabe.go

  1. TODO 1: Struct User (ID int, Username string, Email string, Active bool) und Konstruktor NewUser(...) *User erstellen.
  2. TODO 2: Value-Receiver Methode (u User) Info() string implementieren.
  3. TODO 3: Pointer-Receiver Methoden (u *User) Deactivate() und (u *User) UpdateEmail(newEmail string) schreiben.
  4. TODO 4: Struct AdminUser mit eingebettetem User und (a *AdminUser) Permissions() []string umsetzen.