0Pricing
Swift Academy · Lektion

Funktionen als erstklassige Werte

Speichern Sie Funktionen in Variablen, übergeben Sie sie als Argumente und geben Sie sie aus Funktionen zurück.

Funktionen als erstklassige Werte ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Willkommen

In Swift sind Funktionen Werte erster Klasse – Sie können sie in Variablen speichern, als Argumente übergeben, aus anderen Funktionen zurückgeben und in andere Funktionen verschachteln.

Funktionstypen

Jede Funktion hat einen Typ, der durch ihre Parameter- und Rückgabetypen definiert ist: ```swift func add(_ a: Int, _ b: Int) -> Int { a + b } let operation: (Int, Int) -> Int = add print(operation(3, 4)) // 7 ``` Der Typ von `add` ist `(Int, Int) -> Int`.

Funktionen als Argumente übergeben

```swift func apply(_ f: (Int) -> Int, to value: Int) -> Int { f(value) } func double(_ n: Int) -> Int { n * 2 } print(apply(double, to: 5)) // 10 ``` Dies ist die Grundlage höherer Funktionen wie `map` und `filter`.

Funktionen zurückgeben

```swift func multiplier(by factor: Int) -> (Int) -> Int { return { value in value * factor } } let triple = multiplier(by: 3) print(triple(7)) // 21 ``` Das Zurückgeben einer Funktion erzeugt eine *Closure*, die `factor` erfasst.

Verschachtelte Funktionen

Funktionen können innerhalb anderer Funktionen definiert werden: ```swift func chooseStep(goForward: Bool) -> (Int) -> Int { func forward(_ n: Int) -> Int { n + 1 } func backward(_ n: Int) -> Int { n - 1 } return goForward ? forward : backward } let step = chooseStep(goForward: true) print(step(3)) // 4 ```

Closures als Kurzform

Anonyme Closure-Literale können stellvertretend für jeden Funktionstyp verwendet werden: ```swift let square: (Int) -> Int = { $0 * $0 } print(square(6)) // 36 let doubled = [1, 2, 3].map { $0 * 2 } // [2, 4, 6] ``` `$0` bezeichnet in der Kurzform einer Closure das erste Argument.

Funktionen in Collections speichern

```swift let operations: [(Int, Int) -> Int] = [ { $0 + $1 }, { $0 - $1 }, { $0 * $1 } ] for op in operations { print(op(10, 3)) } // 13, 7, 30 ```

Syntax für abschließende Closures

Wenn das letzte Argument eine Funktion ist, können Sie sie außerhalb der Klammern schreiben: ```swift func withLogging(_ label: String, action: () -> Void) { print("Start: \(label)") action() print("End: \(label)") } withLogging("fetch") { fetchData() } ```

Identität und Gleichheit von Funktionen

Sie können in Swift zwei Funktionswerte nicht mit `==` vergleichen – Funktionen sind nicht Equatable: ```swift // let same = add == add ❌ ``` Wenn Sie vergleichen müssen, verpacken Sie die Funktion in eine Struktur oder Klasse, die Equatable entspricht.

Currying-Muster

Simulieren Sie Currying, indem Sie Funktionen mit teilweise angewendeten Argumenten zurückgeben: ```swift func add(_ a: Int) -> (Int) -> Int { { b in a + b } } let add5 = add(5) print(add5(3)) // 8 print(add5(10)) // 15 ``` Nützlich, um aus generischen Funktionen spezialisierte Funktionen zu erstellen.

Kurzer Test

Welcher Funktionstyp gilt für eine Funktion, die zwei `Int`-Werte entgegennimmt und einen `Int` zurückgibt?

Zusammenfassung

Wichtige Erkenntnisse: • Funktionen haben Typen wie `(ParamTypes) -> ReturnType` • In Variablen speichern, als Argumente übergeben und aus Funktionen zurückgeben • Closures (`{ }`) sind anonyme Funktionswerte • Die Syntax für abschließende Closures vereinfacht Aufrufstellen • Das Zurückgeben von Funktionen aus Funktionen erzeugt Closures, die Variablen erfassen Als Nächstes: die Lektion zur optionalen Verkettung und zum Auflösen von Optionals.

Häufig gestellte Fragen

Ist die Lektion „Funktionen als erstklassige Werte“ kostenlos?

Ja — der vollständige Text von „Funktionen als erstklassige Werte“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Funktionen als erstklassige Werte“?

Speichern Sie Funktionen in Variablen, übergeben Sie sie als Argumente und geben Sie sie aus Funktionen zurück. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Funktionen als erstklassige Werte“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Argumentbezeichnungen und Parameternamen
  2. Standard- und variadische Parameter
  3. In-Out-Parameter und mehrere Rückgabewerte
  4. Funktionen als erstklassige Werte
← Zurück zu Swift Academy