0Pricing
Zig Academy · Lezione

Passaggio di valori e riferimenti

Capire come gli argomenti arrivano alla funzione

Passaggio di valori e riferimenti è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Zig Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Zig Academy include 4 lezioni in totale.

Cómo se pasan los argumentos

Cuando llama a una función, Zig debe introducir sus datos en ella. Hay dos formas: pasar el value en sí o pasar una referencia a él. 🚚

Pasar por valor hace una copia

De forma predeterminada, los argumentos primitivos se pasan by value: la función recibe su propia copia y no puede cambiar el original.

fn addOne(n: i32) i32 {
    return n + 1;
}

Las copias son independientes

Al ser una copy, las modificaciones dentro de la función nunca afectan a quien la llamó. La variable externa permanece exactamente como estaba.

Los parámetros son inmutables

Los parámetros de las funciones en Zig son immutable. No puede reasignar un parámetro dentro del cuerpo, lo que mantiene clara la intención.

Pase un puntero para compartir

Para permitir que una función modifique sus datos, pase un pointer con *T. Así, la función trabaja con el valor real, no con una copia.

fn bump(n: *i32) void {
    n.* += 1;
}

Desreferencie para acceder a él

Dentro de la función, use .* para leer o escribir a través del puntero. n.* += 1 actualiza el valor que aún conserva quien hizo la llamada.

Obtenga la dirección con &

En el punto de llamada, pase una dirección usando &. Así, bump(&count) permite que la función modifique count directamente.

var count: i32 = 0;
bump(&count); // count is now 1

Los datos grandes prefieren referencias

Copiar estructuras grandes resulta ineficiente. Pasar un const pointer comparte los datos con poco coste y sin permitir modificaciones.

fn area(r: *const Rect) i32 {
    return r.w * r.h;
}

Un puntero const significa solo lectura

Un *const T permite que la función lea sus datos, pero nunca que los escriba. Obtiene velocidad sin renunciar a la seguridad.

Los slices ya son vistas

Un slice como []const u8 contiene un puntero y una longitud, por lo que pasarla comparte los datos subyacentes sin realizar una copia completa.

Elija según la intención

Pase por value los datos pequeños y de solo lectura; pase un puntero cuando deba modificarlos o cuando sean grandes.

Comprobación rápida

Quiere que una función modifique la variable de quien la llama. ¿Qué forma de parámetro se lo permite?

Repaso

Los valores se copied y no pueden modificar los originales; los punteros los comparten. Use *T para modificar y *const T para leer datos grandes rápidamente. 🎯

Domande Frequenti

La lezione «Passaggio di valori e riferimenti» è gratuita?

Sì — il testo completo di «Passaggio di valori e riferimenti» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Zig Academy, passa a CoddyKit PRO. Il corso Zig Academy include 4 lezioni in totale.

Cosa imparerò in «Passaggio di valori e riferimenti»?

Capire come gli argomenti arrivano alla funzione Eserciti Zig Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Zig Academy?

Non è richiesta alcuna esperienza precedente. Zig Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Passaggio di valori e riferimenti»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Zig Academy?

Sì. Ogni lezione Zig Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Sintassi delle funzioni e tipi restituiti
  2. Passaggio di valori e riferimenti
  3. Funzioni pub e visibilità
  4. Ricorsione e restituzioni multiple
← Torna a Zig Academy