Slices: un puntero más una longitud
Haga referencia a una ventana dentro de un array.
Slices: un puntero más una longitud es una lección gratuita de Zig Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Zig Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Zig Academy incluye 4 lecciones en total.
Por qué existen los slices
Los arrays tienen una longitud fija, pero las funciones a menudo necesitan trabajar con cualquier longitud. Un slice resuelve esto describiendo una secuencia flexible de elementos. 🔪
Dos datos
Un slice consiste en dos elementos agrupados: un puntero al primer elemento y una longitud que indica cuántos elementos 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; toma prestada una vista de otra estructura, normalmente un array. Los datos subyacentes deben durar más que el slice.
La longitud existe 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 distintos.
const n = view.len;De un array a un slice
Convierta un array completo en un slice mediante [0..], que significa desde el índice cero hasta el final. El slice apunta ahora a ese array.
var data = [_]i32{ 5, 6, 7 };
const s = data[0..];Indexar un slice
Lea elementos mediante un slice igual que con un array, usando corchetes. El índice 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
Pasar un slice a una función solo copia el puntero y la longitud, nunca los elementos. Los búferes grandes se pasan sin coste adicional.
fn sum(items: []const i32) i32 {
// walk items here
}Los slices siguen teniendo límites comprobados
Como un slice conoce su longitud, su indexación también se comprueba. Superar len provoca un pánico de seguridad en las compilaciones seguras.
Los slices vacíos son válidos
Un slice puede contener cero elementos. Un slice vacío simplemente tiene len igual a 0, y es completamente normal pasarlo a otras funciones.
const nothing: []const i32 = &[_]i32{};Comprobación rápida
Piense en lo que almacena realmente un slice en comparación con un array fijo. ¿Qué par lo describe?
Resumen
Un slice es un puntero más una longitud que toma prestada una vista de datos existentes, mantiene la comprobación de límites y se pasa de forma económica por referencia. 🎯
Aprende Zig con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Slices: un puntero más una longitud» es gratis?
Sí — el texto completo de «Slices: un puntero más una longitud» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Zig Academy, actualiza a CoddyKit PRO. El curso de Zig Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Slices: un puntero más una longitud»?
Haga referencia a una ventana dentro de un array. Practicas Zig Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Zig Academy?
No se requiere experiencia previa. Zig Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Slices: un puntero más una longitud»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Zig Academy?
Sí. Cada lección de Zig Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Arrays de tamaño fijo
- Slices: un puntero más una longitud
- Crear slices con array[start..end]
- Iterar y modificar slices