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