Aufgaben-Python/courses/go/06_interfaces_und_polymorphie/README.md

1.4 KiB

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.