Sobes.tech
Junior

Was sind Generics in der Programmierung?

sobes.tech KI

Antwort von AI

Generics (Generics) sind eine Möglichkeit, flexiblen, wiederverwendbaren Code zu schreiben, der mit beliebigen Datentypen funktioniert und dabei die Typsicherheit bewahrt. Sie ermöglichen es, die Angabe eines konkreten Typs bis zum Zeitpunkt der Verwendung aufzuschieben.

Hauptvorteile:

  • Vermeidung von Code-Duplikation: Man kann einen Algorithmus/eine Datenstruktur schreiben, die mit verschiedenen Typen funktioniert.
  • Typsicherheit: Der Compiler überprüft die Übereinstimmung der Typen während der Kompilierung und verhindert Laufzeitfehler durch falsche Typen.
  • Ausdrucksstärkerer Code: Zeigt klar die Absichten des Entwicklers bezüglich der Datentypen.

Beispiel in Swift:

Generische Struktur Stack:

struct Stack<Element> {
    // Generisches Element wird als Typ der Array-Elemente verwendet
    private var items: [Element] = []

    // Generisches Element wird als Parameter-Typ verwendet
    mutating func push(_ item: Element) {
        items.append(item)
    }

    // Generisches Element wird als Rückgabetyp verwendet
    mutating func pop() -> Element {
        return items.removeLast()
    }
}

Verwendung mit Strings:

var stringStack = Stack<String>()
stringStack.push("hello")
stringStack.push("world")
let lastString = stringStack.pop() // lastString ist vom Typ String

Verwendung mit Zahlen:

var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let lastInt = intStack.pop() // lastInt ist vom Typ Int

Ohne Generics müsste man separate Strukturen für Stack<String>, Stack<Int> usw. schreiben oder weniger sichere Ansätze verwenden (z.B. Any).