Aufgaben-Python/courses/go/06_interfaces_und_polymorphie
Alex Mueller 2571cb8847 feat(ux): responsive kurs-sidebar und kapitel-drawer für alle 13 kurse & web-ide
- Dynamic Sidebar mit window.COURSES_MANIFEST für 13 Kurse (216 Kapitel)
- Kurswechsler Dropdown mit Direktnavigation
- Fortschrittsanzeige mit Solved-Checkmarks (✓) aus localStorage
- Responsive Off-Canvas Drawer mit Floating Action Button (☰ Kapitel) & Backdrop auf Mobile/Tablets
- Web-IDE Topbar Drawer-Button (☰ Kapitel) für unterbrechungsfreien Vollbild-Editor
- Saubere Bereinigung redundanter statischer Legacy-Sidebars
2026-09-12 13:49:46 +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 feat(ux): responsive kurs-sidebar und kapitel-drawer für alle 13 kurse & web-ide 2026-09-12 13:49:46 +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 06: Interfaces, Duck Typing & Polymorphie ⚡

Willkommen zu Modul 06 des Go (Golang) Kurses!

In diesem Modul lernst du das Interface-System von Go kennen: Implizite Schnittstellen-Erfüllung (Structural Typing), lose Kopplung bei Services, Type Assertions (val.(Type)) und Type Switches auf any.


💡 1. Das Wichtigste in Kürze

Implizite Implementierung

In Go implementiert ein Datentyp ein Interface automatisch, ohne Schlüsselwörter wie implements. Sobald alle Methodensignaturen übereinstimmen, ist der Typ polymorph einsetzbar.

Type Assertions

Mit val.(ConcreteType) prüfst du, ob ein Interface-Wert einen bestimmten konkreten Typ kapselt:

if s, ok := i.(string); ok {
    fmt.Println("Es ist ein String:", s)
}

Type Switches

Mit switch v := i.(type) unterscheidest du dynamisch zwischen verschiedenen Typen.

Leeres Interface (any / interface{})

Das leere Interface hat 0 Methoden und wird von jedem Typ in Go erfüllt.


🎯 Teilziele in aufgabe.go

  1. TODO 1: Interface Storage mit Save(key, val string) error, Get(key string) (string, bool) und Count() int definieren.
  2. TODO 2: Struct MemoryStorage implementieren, das Storage erfüllt.
  3. TODO 3: Polymorphe Funktion SyncData(source, target Storage, keys []string) (int, error) schreiben.
  4. TODO 4: Funktion TypPruefung(val any) string mit Type-Switch realisieren.