Slice: un puntatore più una lunghezza
Riferirsi a una porzione di un array
Slice: un puntatore più una lunghezza è 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.
Por qué existen los slices
Los arrays tienen una longitud fija, pero las funciones a menudo deben trabajar con cualquier longitud. Un slice resuelve esto describiendo una secuencia flexible de elementos. 🔪
Dos datos
Un slice consta en realidad de dos elementos agrupados: un pointer al primer elemento y una longitud que indica cuántos elementos le siguen.
El tipo slice
Escriba un tipo slice como []T, con corchetes vacíos y un tipo de elemento. Este []i32 significa un slice de enteros con signo.
var view: []i32 = undefined;Los slices toman prestado, no son propietarios
Un slice no es propietario de su memoria; borrows una vista de otra cosa, normalmente un array. Los datos subyacentes deben durar más que el slice.
La longitud vive en tiempo de ejecución
A diferencia de un array, el len de un slice es un valor de tiempo de ejecución. Eso permite que un mismo tipo slice abarque muchos tamaños diferentes.
const n = view.len;Del array al slice
Convierta un array completo en un slice mediante [0..], que significa desde el índice cero hasta el final. El slice apunta ahora al interior de ese array.
var data = [_]i32{ 5, 6, 7 };
const s = data[0..];Indexar un slice
Lea elementos a través de un slice igual que en un array, usando corchetes. El index se suma al puntero almacenado para encontrar el valor.
const middle = s[1];Slices de solo lectura
Un []const u8 es un slice que puede leer, pero a través del cual no puede escribir. const protege los datos prestados frente a cambios accidentales.
const msg: []const u8 = "hi";Pasar slices es barato
Al pasar un slice a una función, solo se copian el pointer y la longitud, nunca los elementos. Los búferes grandes se pasan sin ningún coste adicional.
fn sum(items: []const i32) i32 {
// walk items here
}Los slices siguen comprobando los límites
Poiché una slice ne conosce la lunghezza, l'indicizzazione è comunque controllata. Superare len provoca un panic di sicurezza nelle build sicure.
Le slice vuote sono valide
Una slice può contenere zero elementi. Una slice vuota ha semplicemente len uguale a 0, ed è perfettamente normale passarla ad altre funzioni.
const nothing: []const i32 = &[_]i32{};Controllo rapido
Rifletta su cosa memorizza realmente una slice rispetto a un array a dimensione fissa. Quale coppia la descrive?
Riepilogo
Una slice è un puntatore più una lunghezza che offre una vista sui dati esistenti, mantiene il controllo dei limiti e viene passata a basso costo per riferimento. 🎯
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 «Slice: un puntatore più una lunghezza» è gratuita?
Sì — il testo completo di «Slice: un puntatore più una lunghezza» è 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 «Slice: un puntatore più una lunghezza»?
Riferirsi a una porzione di un array 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 «Slice: un puntatore più una lunghezza»?
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