Rekursion und mehrere Rückgabewerte
Funktionen, die sich selbst aufrufen und weitere Aufrufe verzweigen.
Rekursion und mehrere Rückgabewerte ist eine kostenlose Zig 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 Zig Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Zig Academy-Kurs umfasst insgesamt 4 Lektionen.
Eine Funktion ruft sich selbst auf
Rekursion bedeutet, dass eine Funktion sich selbst aufruft, um Schritt für Schritt einen kleineren Teil desselben Problems zu lösen. 🔁
Jede Rekursion benötigt einen Basisfall
Der Basisfall ist der Abbruchpunkt. Ohne ihn würde die Funktion sich endlos selbst aufrufen und einen Stacküberlauf verursachen.
Der rekursive Fall
Der rekursive Fall ruft die Funktion erneut mit einer kleineren Eingabe auf und nähert sich dabei stetig dem Basisfall.
fn factorial(n: u64) u64 {
if (n <= 1) return 1;
return n * factorial(n - 1);
}Einen kleinen Aufruf nachverfolgen
Der Aufruf factorial(3) wird zu 3 * factorial(2), dann zu 2 * factorial(1). Der Basisfall gibt 1 zurück, und die Ergebnisse werden auf dem Rückweg miteinander multipliziert.
Rekursion verwendet den Stack
Jeder Aufruf fügt dem Stack einen Frame hinzu. Zu viele Ebenen verursachen einen Stacküberlauf. Halten Sie die Rekursionstiefe daher angemessen.
Viele Probleme lassen sich stattdessen mit Schleifen lösen
Alles, was rekursiv möglich ist, kann auch als Schleife geschrieben werden. Schleifen vermeiden zusätzliche Stack-Frames und sind daher oft die sicherere Wahl.
fn factorial(n: u64) u64 {
var acc: u64 = 1;
var i: u64 = 2;
while (i <= n) : (i += 1) acc *= i;
return acc;
}Eine Funktion gibt einen Typ zurück
Eine Zig-Funktion hat einen einzigen Rückgabetyp, kann aber viele return-Anweisungen enthalten, die alle Werte dieses einen Typs liefern.
Frühe Rückgaben verzweigen den Ablauf
Sie können aus verschiedenen Zweigen frühzeitig zurückgeben. Jeder Pfad gibt einen Wert des deklarierten Typs zurück und beendet die Funktion sofort.
fn sign(n: i32) i32 {
if (n > 0) return 1;
if (n < 0) return -1;
return 0;
}Mehrere Werte in einem Struct zurückgeben
Um mehrere Werte zurückzugeben, geben Sie ein Struct oder Tupel zurück, das sie in einem Ergebnis bündelt.
fn divmod(a: u32, b: u32) struct { q: u32, r: u32 } {
return .{ .q = a / b, .r = a % b };
}Das Ergebnis entpacken
Der Aufrufer liest die gebündelten Felder anhand ihrer Namen, etwa result.q und result.r, um die einzelnen zurückgegebenen Bestandteile zu verwenden.
const res = divmod(7, 2);
// res.q is 3, res.r is 1Auch Fehler zurückgeben
Eine Funktion kann eine Fehler-Union zurückgeben, sodass ein Zweig einen Fehler signalisieren kann, während andere einen normalen Wert zurückgeben.
Schnelltest
Sie schreiben eine rekursive Funktion, aber sie endet nie und stürzt ab. Was haben Sie höchstwahrscheinlich vergessen?
Zusammenfassung
Rekursion benötigt einen Basisfall und einen rekursiven Aufruf mit einer kleineren Eingabe. Eine Funktion hat einen Rückgabetyp, aber viele Rückgabepfade, und ein Struct bündelt mehrere Ergebnisse. 🎯
Häufig gestellte Fragen
Ist die Lektion „Rekursion und mehrere Rückgabewerte“ kostenlos?
Ja — der vollständige Text von „Rekursion und mehrere Rückgabewerte“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Zig Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Zig Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Rekursion und mehrere Rückgabewerte“?
Funktionen, die sich selbst aufrufen und weitere Aufrufe verzweigen. Du übst Zig 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 Zig Academy zu starten?
Keine Vorkenntnisse erforderlich. Zig 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 „Rekursion und mehrere Rückgabewerte“?
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 Zig Academy-Lektion Code schreiben und ausführen?
Ja. Jede Zig 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
- Funktionssyntax und Rückgabetypen
- Werte oder Referenzen übergeben
- pub-Funktionen und Sichtbarkeit
- Rekursion und mehrere Rückgabewerte