Einführung in die Rekursion
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 47 von 65.
Rekursion ist eine Programmiertechnik, bei der eine Funktion sich selbst aufruft, um ein Problem zu lösen. Stellen Sie es sich so vor, als würden Sie in zwei gegenüberliegende Spiegel schauen – jedes Spiegelbild enthält eine kleinere Version desselben Bildes, wodurch eine Endlosschleife entsteht, bis die Spiegelbilder zu klein werden, um noch gesehen zu werden.
Jede rekursive Funktion benötigt zwei wesentliche Komponenten, um ordnungsgemäß zu funktionieren. Der Basisfall ist die Bedingung, die die Rekursion stoppt – es ist wie der Punkt, an dem die Spiegelreflexionen zu klein werden, um noch von Bedeutung zu sein. Ohne einen Basisfall würde sich Ihre Funktion ewig selbst aufrufen und schließlich Ihr Programm zum Absturz bringen.
Der Rekursionsschritt ist der Teil, in dem die Funktion sich selbst mit einer modifizierten Version des ursprünglichen Problems aufruft. Jedes Mal, wenn die Funktion sich selbst aufruft, sollte sie an einer kleineren oder einfacheren Version des Problems arbeiten und sich so schrittweise dem Basisfall nähern.
Stellen Sie sich vor, Sie suchen Ihre Schlüssel in einem Stapel Papier. Sie könnten das oberste Blatt prüfen, und wenn Ihre Schlüssel nicht dort sind, würden Sie dasselbe mit dem restlichen Stapel tun (der nun um ein Blatt kleiner ist). Sie würden diesen Vorgang so lange wiederholen, bis Sie entweder Ihre Schlüssel finden oder keine Blätter mehr zum Prüfen übrig sind.
Dieser Ansatz, ein großes Problem in kleinere, identische Probleme zu zerlegen, macht Rekursion für bestimmte Arten von Programmierherausforderungen so mächtig.
Spickzettel
Rekursion ist eine Programmiertechnik, bei der eine Funktion sich selbst aufruft, um ein Problem zu lösen, indem sie es in kleinere, identische Probleme zerlegt.
Jede rekursive Funktion benötigt zwei wesentliche Komponenten:
Basisfall: Die Bedingung, die die Rekursion stoppt, um Endlosschleifen zu verhindern.
Rekursionsschritt: Der Teil, in dem die Funktion sich selbst mit einer modifizierten Version des ursprünglichen Problems aufruft und sich so schrittweise dem Basisfall nähert.
Probier es selbst
Diese Lektion enthält keine Programmieraufgabe.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Listenmanipulation
Listen-Eigenschaften: first & lastListen-Status: isEmpty & isNotEmptyEine Liste umkehrenHinzufügen zu einer Liste: insertElemente aus Liste entfernen: removeWhereSuchen in einer Liste: indexOfEine Liste sortierenEine Liste mischenZusammenfassung – Listen-Organizer4Fortgeschrittene Map-Manipulation
Über eine Map iterierenPrüfen auf Schlüssel und WerteMap-Eigenschaften: keys & valuesBedingtes Hinzufügen: putIfAbsentEinträge aus einer Map entfernenVerschachtelte MapsRückblick – Inventar-Update7Fortgeschrittene Funktionen
Anonyme FunktionenFunktionen als Argumente übergebenClosures verstehenEinführung in die RekursionRekursive Funktion: CountdownRekursive Funktion: FakultätZusammenfassung – List Processor10Abschluss-Herausforderungen
Herausforderung: NotensortiererHerausforderung: VokalzählerHerausforderung: FizzBuzz2Funktionale Listenoperationen
Transformieren mit 'map'Filtern mit 'where''.toList()' verwendenBedingungen prüfen mit 'any'Bedingungen mit 'every'Suchen mit 'firstWhere'Zusammenfassung – Datenfilterung3Sets
Was ist ein Set?Ein Set erstellenHinzufügen und Entfernen in SetsPrüfen auf Elemente in einem SetEine Liste in ein Set umwandelnSet-VereinigungSet-SchnittmengeSet-DifferenzRückblick – Einzigartige Gästeliste