0Pricing
Zig Academy · Lektion

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 1

Groß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

  1. Funktionssyntax und Rückgabetypen
  2. Werte oder Referenzen übergeben
  3. pub-Funktionen und Sichtbarkeit
  4. Rekursion und mehrere Rückgabewerte
← Zurück zu Zig Academy