Werte oder Referenzen übergeben
Wie Argumente Ihre Funktion erreichen.
Werte oder Referenzen übergeben ist eine kostenlose Zig Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.
So werden Argumente übergeben
Wenn Sie eine Funktion aufrufen, muss Zig Ihre Daten in die Funktion übertragen. Dafür gibt es zwei Möglichkeiten: Sie übergeben den Wert selbst oder eine Referenz darauf. 🚚
Übergabe per Wert erstellt Kopien
Primitive Argumente werden standardmäßig per Wert übergeben: Die Funktion erhält eine eigene Kopie und kann das Original nicht ändern.
fn addOne(n: i32) i32 {
return n + 1;
}Kopien bleiben unabhängig
Da es sich um eine Kopie handelt, wirken sich Änderungen innerhalb der Funktion niemals auf den Aufrufer aus. Ihre Variable außerhalb bleibt genau wie zuvor.
Parameter sind unveränderlich
Funktionsparameter sind in Zig unveränderlich. Sie können einen Parameter innerhalb des Funktionskörpers nicht neu zuweisen, was die Absicht des Codes klar hält.
Zum Teilen einen Pointer übergeben
Damit eine Funktion Ihre Daten ändern kann, übergeben Sie mit *T einen Pointer. Die Funktion arbeitet dann mit Ihrem tatsächlichen Wert statt mit einer Kopie.
fn bump(n: *i32) void {
n.* += 1;
}Durch Dereferenzieren darauf zugreifen
Im Inneren verwenden Sie .*, um über den Pointer zu lesen oder zu schreiben. n.* += 1 aktualisiert den Wert, den der Aufrufer weiterhin hält.
Mit & die Adresse übergeben
An der Aufrufstelle übergeben Sie eine Adresse mit &. Dadurch kann bump(&count) count direkt ändern.
var count: i32 = 0;
bump(&count); // count is now 1Große Daten bevorzugen Referenzen
Bei großen Structs ist Kopieren ineffizient. Durch die Übergabe eines const-Pointers teilen Sie die Daten kostengünstig, ohne Änderungen zuzulassen.
fn area(r: *const Rect) i32 {
return r.w * r.h;
}Ein const-Pointer bedeutet Nur-Lesen
Mit einem *const T kann die Funktion Ihre Daten lesen, aber niemals schreiben. Sie erhalten Geschwindigkeit, ohne auf Sicherheit zu verzichten.
Slices sind bereits Ansichten
Ein Slice wie []const u8 enthält einen Pointer und eine Länge. Durch seine Übergabe werden die zugrunde liegenden Daten geteilt, ohne sie vollständig zu kopieren.
Nach der Absicht entscheiden
Übergeben Sie kleine, schreibgeschützte Daten per Wert; verwenden Sie einen Pointer, wenn Sie Daten verändern müssen oder sie groß sind.
Schnelltest
Sie möchten, dass eine Funktion die Variable des Aufrufers ändert. Welche Parameterform ermöglicht das?
Zusammenfassung
Werte werden kopiert und können Ihre Originale nicht ändern; Pointer teilen sie. Verwenden Sie *T zum Ändern und *const T, um große Daten schnell zu lesen. 🎯
Häufig gestellte Fragen
Ist die Lektion „Werte oder Referenzen übergeben“ kostenlos?
Ja — der vollständige Text von „Werte oder Referenzen übergeben“ 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 „Werte oder Referenzen übergeben“?
Wie Argumente Ihre Funktion erreichen. 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 2 von 4.
Wie lange dauert die Lektion „Werte oder Referenzen übergeben“?
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