Zig Academy · Lezione

inline for e cicli srotolati

Iterare a compile time

Lezione 4 di 413 passaggi

inline for e cicli srotolati è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 4 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.

Un ciclo eseguito in fase di compilazione

Un inline for è un ciclo che il compilatore espande durante la compilazione. Invece di iterare a runtime, copia il corpo del ciclo per ogni elemento. 🔁

La parola chiave inline

Inserisca inline prima di for per chiedere a Zig di espandere il ciclo in fase di compilazione. A quel punto il numero di iterazioni deve essere noto.

inline for (items) |item| {}

L'unrolling consiste nel copiare il corpo

L'unrolling sostituisce il ciclo con una copia del suo corpo per ogni elemento. A runtime non rimane alcun contatore del ciclo, ma solo codice sequenziale.

Iterare su una tupla nota

Un uso comune consiste nell'attraversare una tupla i cui campi hanno tipi diversi. Ogni copia espansa può trattare il proprio elemento con il tipo corretto.

inline for (.{ 1, true, 3.0 }) |v| {}

L'indice può essere comptime

Con un inline for l'indice del ciclo è un valore noto in fase di compilazione a ogni iterazione, quindi è possibile usarlo dove sono consentite solo costanti.

inline for (list, 0..) |v, i| {}

Ogni iterazione può essere diversa

Poiché il corpo viene duplicato, ogni copia può usare un tipo o un valore diverso. Un normale ciclo for non può farlo.

Riflettere sui campi di una struct

È possibile combinare inline for con la riflessione sui tipi per visitare ogni campo di una struct in fase di compilazione, generando codice su misura per ciascuno.

inline for (fields) |field| {}

Scambiare dimensioni del codice con velocità

L'unrolling elimina l'overhead del ciclo, ma aumenta le dimensioni del binario. Usi inline for con conteggi piccoli e fissi, quando il guadagno di velocità ne vale la pena.

Il conteggio deve essere noto

Un inline for richiede una lunghezza visibile al compilatore. Non è possibile espandere un ciclo su una slice di lunghezza sconosciuta determinata a runtime.

Esiste anche inline while

Zig offre anche inline while. Espande un ciclo while in fase di compilazione quando la condizione può essere risolta durante la compilazione.

Si limiti a conteggi piccoli

Scelga inline for quando il numero di elementi è piccolo e fisso. Per lunghezze grandi o sconosciute, un normale ciclo for mantiene il binario più compatto.

Verifica rapida

Cosa chiede al compilatore Zig l'aggiunta di inline a un ciclo for?

Riepilogo

Un inline for espande in fase di compilazione un ciclo di lunghezza nota, permettendo a ogni copia di usare il proprio tipo ed eliminando l'overhead del ciclo a runtime. 🎯

Gratis per iniziare

Impara Zig con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «inline for e cicli srotolati» è gratuita?

Sì — il testo completo di «inline for e cicli srotolati» è 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 «inline for e cicli srotolati»?

Iterare a compile time 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 4 di 4.

Quanto tempo richiede la lezione «inline for e cicli srotolati»?

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. Compile time e runtime a confronto
  2. Parametri e valori comptime
  3. I tipi sono valori comptime
  4. inline for e cicli srotolati
← Torna a Zig Academy