Generika in Swift

Mar 09 2023
Mit Generika können Sie flexiblen und wiederverwendbaren Code schreiben, der mit verschiedenen Typen arbeiten kann. Mithilfe von Generika können Sie Funktionen, Klassen und Strukturen definieren, die mit jedem Typ und nicht nur mit einem bestimmten Typ funktionieren.

Mit Generika können Sie flexiblen und wiederverwendbaren Code schreiben, der mit verschiedenen Typen arbeiten kann. Mithilfe von Generika können Sie Funktionen, Klassen und Strukturen definieren, die mit jedem Typ und nicht nur mit einem bestimmten Typ funktionieren.

Hier ist ein Beispiel für eine generische Funktion, die ein Array eines beliebigen Typs annimmt und das erste Element dieses Arrays zurückgibt:

func firstElement<T>(of array: [T]) -> T? {
    array.first
}

Sie können diese Funktion dann mit jedem Array-Typ aufrufen:

let strings = ["apple", "banana", "orange"]
let firstString = firstElement(of: strings) // "apple"

let numbers = [1, 2, 3]
let firstNumber = firstElement(of: numbers) // 1

struct Stack<T> {
    private var elements = [T]()

    mutating func push(_ element: T) {
        elements.append(element)
    }

    mutating func pop() -> T? {
        elements.popLast()
    }
}

var stringStack = Stack<String>()
stringStack.push("apple")
stringStack.push("banana")
let poppedString = stringStack.pop() // "banana"

var numberStack = Stack<Int>()
numberStack.push(1)
numberStack.push(2)
let poppedNumber = numberStack.pop() // 2