0Pricing
Zig Academy · Lezione

Iterare e modificare le slice

Leggere e scrivere attraverso una slice

Iterare e modificare le slice è 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.

Scorrere una slice

Una volta ottenuta una slice, di solito si desidera visitare ogni elemento. Il ciclo for di Zig percorre una slice in modo semplice dall'inizio alla fine. 🔁

for sugli elementi

Inserisca la slice tra parentesi e assegni un nome a ogni elemento con una capture tra barre verticali. A ogni iterazione il ciclo fornisce un valore.

for (items) |value| {
    // use value
}

Sola lettura per impostazione predefinita

Una capture semplice fornisce una copia di ogni elemento. Modificare quella copia non influisce sui dati sottostanti della slice.

Catturare un puntatore per modificare

Aggiunga * prima del nome della capture per ottenere un puntatore invece di una copia. Ora la scrittura attraverso di esso modifica l'elemento reale.

for (items) |*value| {
    value.* += 1;
}

Dereferenziare per scrivere

Con una capture di puntatore si usa .* per raggiungere il valore puntato. Questa sintassi consente sia di leggere sia di assegnare.

value.* = 0;

La slice deve essere mutabile

Per modificare gli elementi, il tipo della slice deve essere semplicemente []T, non []const T. Una slice const impedisce di scriverci attraverso.

Iterare con un indice

Abbini la slice a un intervallo per ottenere anche un contatore. La seconda capture dopo la virgola è l'indice corrente.

for (items, 0..) |value, i| {
    // i is the index
}

Indicizzazione diretta

Può anche scrivere in una posizione tramite index, senza una capture nel ciclo. Assegni usando le parentesi quadre proprio come con un array.

items[0] = 42;

Iterare insieme due slice

Passi più slice a un unico ciclo for per percorrerle in lockstep. Devono avere la stessa lunghezza, altrimenti viene generato un panic.

for (xs, ys) |x, y| {
    // x and y line up
}

Accumulo di un risultato

Mantenga un totale progressivo in una var dichiarata prima del ciclo, quindi lo aggiorni a ogni iterazione per calcolare una somma.

var total: i32 = 0;
for (items) |v| total += v;

Saltare con continue

All'interno del ciclo, continue passa direttamente all'elemento successivo. Lo usi per ignorare i valori che non superano un controllo rapido.

for (items) |v| {
    if (v < 0) continue;
}

Controllo rapido

Desidera raddoppiare sul posto ogni elemento di una slice []i32. Quale forma di capture consente di riscrivere il valore?

Riepilogo

Iteri una slice con for: le capture semplici leggono copie, |*value| con .* modifica sul posto e un intervallo consente di tenere traccia dell'indice. 🎯

Domande Frequenti

La lezione «Iterare e modificare le slice» è gratuita?

Sì — il testo completo di «Iterare e modificare le slice» è 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 «Iterare e modificare le slice»?

Leggere e scrivere attraverso una slice 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 «Iterare e modificare le slice»?

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. Array di dimensione fissa
  2. Slice: un puntatore più una lunghezza
  3. Creare slice con array[start..end]
  4. Iterare e modificare le slice
← Torna a Zig Academy